This repository contains assignments and projects related to various aspects of image processing, from basic operations to advanced techniques like active contours. Examples and case studies focus on applications in medical imaging.
- HW0 - Introduction to Image Analysis with Python
- HW1 - Introduction to Operations on Images
- HW2 - Intensity-based Operations
- HW3 - Spatial Operations
- HW4 - Frequency Domain Operations
- HW5 - Image Restoration and Morphological Image Processing
- HW6 - Segmentation and Active Contours
In this section, we introduce the basics of Python programming and data visualization, laying the groundwork for advanced image analysis topics.
- Exploring NumPy functionalities
- Data Types and Memory Management
- Array Manipulations
- Populating Matrixes Based on Defined Rules
- 2D Matrix Generation with Circle Pattern
- Adding Random Noise to Matrix
- Data Distribution Visualization
- Plotting Histograms with Matplotlib
In this section, we delve into basic image operations, including transformations and adjustments. The notebooks cover a variety of techniques such as affine transformations, image interpolation, and contrast & brightness adjustments.
- Affine Transformations (Rotation, Scaling, Shearing)
- Downsampling
- Resampling & Interpolation (Cubic, Linear, Nearest)
- Images Normalization
- Linear and Non-linear Transformations
- Adjusted Contrast & Brightness
This part, explores the basics of intensity-based operations for image enhancement. Techniques ranging from contrast stretching and power law transformations to histogram equalization and CLAHE are covered. Each notebook offers a thorough analysis of histogram techniques and their outcomes, providing a complete understanding of the subject.
- Contrast Stretching
- Power-Law (Gamma) Transformation
- Different Gamma Value Experimentation
- Comparison between Contrast Stretching and Power-Law Along
- Histogram Equalization
- Contrast Limited Adaptive Histogram Equalization (CLAHE)
- Analysis of Histogram Techniques and Their Outcomes
In this part, the focus shifts to spatial filtering techniques that emphasize on specific features in images. We explore various types of filters like mean, median, and Laplacian, along with edge-detection methods such as Sobel operators.
- Spatial Filters (Mean, Median)
- Image Blurring Techniques
- Laplacian Isotropic Filter
- Image Enhancement
- Laplacian Sharpening
- Sobel Filters (Sobel-X, Sobel-Y)
- Edge Detection Techniques
- Image Enhancement
In this section, we delve into the realm of frequency domain operations, studying the Fourier Transform and its applications in image processing. From basic Fourier Transform techniques to the implementation of various types of filters such as Ideal, Butterworth, and Gaussian, this section provides a comprehensive look into the manipulation of images in the frequency domain.
- Fourier Transform for Image Analysis
- Band-Reject Filtering
- Frequency Domain Techniques
- Fourier Transform & Inverse Fourier Transform
- Low- and High-Pass Filters (Ideal, Butterworth, Gaussian)
In this part, we explore various methods for improving image quality and enhancing features through various restoration and morphological techniques. This section covers a range of topics, from eliminating unwanted artifacts to performing operations like dilation and erosion. We explore the fundamentals of these methods, their applications, and their effects on different types of images.
- Noise Distribution Analysis
- Alpha-Trimmed Mean Filtering
- Inverse Filtering for Image Restoration
- High- and Low-Pass Butterworth Filters
- Dilation and Erosion Functions
- Boundary Identification through Textural Segmentation
- Morphologic Opening and Closing
The final section focuses on the complex realm of image segmentation and contour detection. We employ a range of algorithms and techniques to identify and isolate specific structures within images. From basic circle detection using the Hough transform to sophisticated active contours known as "snakes". These techniques help us to explore how to extract meaningful information from complex visual scenes.
- Sobel and Prewitt Operators
- Non-Maximum Suppression
- Hysteresis Thresholding
- Circle Detection using Hough Transform
- User Interface for Gathering Initial Contour Points
- Calculating Equally Spaced 2D Contour Points
- Snake External and Internal Energy Calculating
- Contour Evolution
To give a visual summary of the exploration into active contours, below is an image illustrating the evolution of a contour after several iterations: