This project implements an interactive desktop application for exploring the Fourier Transform (FT) components of grayscale images. The application allows users to manipulate and visualize the importance of magnitude and phase or real and imaginary components, enabling a deeper understanding of the impact of each on the signal. Users can also customize the mixing of different frequency regions for advanced visualization and analysis.
- Four Image Viewers: View up to four grayscale images simultaneously, with unified sizes across all images.
- If a colored image is uploaded, it is automatically converted to grayscale.
- FT Component Display: Select from the following FT components to display in any viewport:
- Magnitude
- Phase
- Real
- Imaginary
- Brightness/Contrast Adjustment: Adjust the brightness and contrast of any image or component using mouse drag gestures.
- Two Modes:
- Magnitude and Phase
- Real and Imaginary
- Customizable Weights: Adjust weights for each FT component using intuitive sliders to mix components and generate a new output image.
- Output Viewports: View the mixing results in one of two output viewports, with full control over where the result is displayed.
- Inner and Outer Region Selection:
- Use a rectangular selector to highlight and include either the inner (low frequencies) or outer (high frequencies) region of the FT components.
- Customize the size of the region using a slider or resize handles.
- Unified selection across all input images for consistent mixing.
- Interactive Updates:
- Mixing is performed in real-time using inverse Fourier Transform (IFFT).
- A progress bar shows the operation's status for lengthy computations.
- If a new mixing operation is requested, the previous operation is canceled and the new one starts immediately, ensuring responsive performance.
-
Application UI on Startup
-
Equalizing Using Magnitude and Phase Mode
-
Equalizing Using Real and Imaginary Mode
-
Inner Region Frequency Equalizing
-
Outer Region Frequency Equalizing
-
Clone the repository:
git clone https://github.com/Mazenmarwan023/image-equalizer.git
-
Navigate to the project directory:
cd image-equalizer
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
-
Upload up to four grayscale images.
-
Select an FT component (Magnitude, Phase, Real, or Imaginary) from the dropdown menu for each image.
-
Adjust the sliders to customize mixing weights or region selection.
-
View the mixing results in the output viewport.
This project is licensed under the MIT License.