The Signal Mixer is a desktop application designed and implemented using PyQt5. It provides an interactive environment to explore the relative importance of magnitude and phase components in signals, using grayscale images as a visual representation. The project emphasizes the understanding of frequency contributions within the signal through a variety of features.
- Open and View Images: Load and view up to four grayscale images concurrently in separate viewports.
- Color Conversion: Automatically converts colored images to grayscale for consistency.
- Unified Size: Ensures all images are displayed at the size of the smallest image.
- Easy Image Switching: Double-click on an image viewer to seamlessly switch to another image.
- Two Output Ports: Visualize the mixer result in one of the two output viewports, mirroring the input image viewport.
- Brightness/Contrast Control: Dynamically adjust image brightness and contrast using mouse dragging in any image viewport.
- Weighted Average Calculation: Generate output images by performing an Inverse Fourier Transform (ifft) of the weighted average of Fourier Transform (FT) components from the input images.
- Customizable Weights: Intuitively customize weights for each image's FT using sliders.
- Region Selection: Choose regions for each FT component (inner for low frequencies or outer for high frequencies).
- Customizable Region Size: Adjust the size or percentage of the selected region using sliders or resize handles.
- Unified Region Selection: Ensure consistency in region selection across all four images.
- Operation Handling: Automatically cancels the previous operation if the user initiates a new request while the previous one is still running.