This repository contains five projects exploring fundamental concepts in image processing and computer vision. Each project focuses on a specific topic, with Jupyter Notebook files for code implementation and PDF reports summarizing the project goals, methods, and results.
The repository is structured into five folders, each representing a distinct project:
- grayscale: Converts color images to grayscale and explores different grayscale conversion techniques.
- gradient: Calculates and visualizes image gradients for edge detection and feature extraction.
- filter: Applies various filters to images, including blurring, sharpening, edge detection, and noise reduction.
- stitch: Implements image stitching algorithms to combine multiple images into a panorama.
- transformation: Performs various geometric transformations on images, such as rotation, scaling, and translation.
-
Install Python and Required Packages: Ensure you have Python 3.x installed. The specific packages needed for each project are listed in the corresponding Jupyter Notebook files.
-
Open Jupyter Notebooks: Navigate to the respective project folder and open the Jupyter Notebook file (e.g.,
filter/Filter.ipynb
) to run the code and explore the project.
1. Grayscale:
This project focuses on converting color images to grayscale:
- Implementing different grayscale conversion methods (average, luminosity, weighted average).
- Comparing the results of different methods.
- Applying grayscale conversion to enhance image features.
2. Filter:
This project demonstrates the application of various image filters to enhance or modify images. It covers:
- Blurring (Gaussian Blur, Mean Blur)
- Sharpening (Sobel Operator, Laplacian Operator)
- Edge Detection (Canny Edge Detection)
- Noise Reduction (Median Filter)
3. Gradient:
This project explores image gradients and their applications:
- Calculating gradients using the Sobel operator.
- Visualizing gradients to identify edges and features.
- Applying gradient information for image segmentation.
4. Stitch:
This project implements image stitching techniques:
- Feature detection using SIFT or SURF algorithms.
- Feature matching to identify corresponding points in different images.
- Image transformation and blending to create a seamless panorama.
5. Transformation:
This project covers geometric transformations in image processing:
- Rotation, scaling, and translation of images.
- Implementing transformations using OpenCV functions.
- Applying transformations to modify image perspectives or align images.
Feel free to contribute to the repository by adding new projects, improving existing code, or suggesting enhancements.