Practice codes while I was exploring Digital Image Processing in my 3rd year of university.
This repository includes essential image processing and computer vision techniques that are crucial for most ML tasks.
image_io_and_display/ color_space_conversion/ image_enhancement/ filtering_and_smoothing/ edge_and_contour_detection/ morphological_operations/ thresholding_and_segmentation/ feature_extraction/ image_transformation/ data_augmentation/
Reading and writing images using OpenCV or PIL, displaying with matplotlib, resizing, cropping, rotating, and manipulating color channels.
Conversions between RGB, Grayscale, HSV, and LAB; normalization and histogram equalization for better color correction.
Contrast stretching, histogram equalization, CLAHE (adaptive histogram), and gamma correction for improving image quality.
Applying mean, Gaussian, median, and bilateral filters to reduce noise, and sharpening filters for edge enhancement.
Using Sobel, Laplacian, and Canny detectors; finding contours and drawing bounding boxes around objects.
Performing erosion, dilation, opening, closing, gradient, and top-hat / black-hat operations to refine binary images.
Applying global and adaptive thresholding, Otsu’s method, k-means clustering, and watershed algorithms for segmentation.
Extracting descriptors like SIFT, ORB, HOG, and color histograms, plus texture analysis using GLCM.
Performing affine and perspective transformations, geometric transforms, Fourier and DCT for frequency domain analysis.
Generating synthetic variations via flipping, rotation, scaling, cropping, color jittering, and libraries like Albumentations or torchvision.
pip install opencv-python numpy matplotlib scikit-image pillow albumentations