digital-image-processing-cpp
                                
                                 digital-image-processing-cpp copied to clipboard
                                
                                    digital-image-processing-cpp copied to clipboard
                            
                            
                            
                        cpp implementation for algorithms in the book "digital image processing and computer vision"("数字图像处理与机器视觉-Visual C++与Matlab实现")
digital-image-processing-cpp
cpp implementation for algorithms in the book "数字图像处理与机器视觉-Visual C++与Matlab实现"
To compile CH3_pixel_operation.cpp:
./compile.sh -DCH3 CH3_pixel_operation.cpp utility.cpp
In which -DCH3 activates the main function in the source file, otherwise main function is ignored. And this source file includes utility.h, so we need to compile CH3_pixel_operation.cpp with utility.h's implementation, which is utility.cpp.
Similar method for CH 4,5,6,7,8 to compile.
To compile CH9_image_segmentation.cpp:
./compile.sh -DCH9 CH9_image_segmentation.cpp CH3_pixel_operation.cpp CH5_spatial_domain_image_enhancement.cpp CH8_morphology_image_processing.cpp utility.cpp
Because it includes the corresponding headers.
CH3 pixel operation
Threshold
Set threshold as 100:
 
Linear Transform
Set dFa as 2.0, set dFb as -55:
 
Gamma Transform
Set gamma as 1.8, set comp as 0:
 
Log Transform
Set dC as 10:
 
Partial Linear Transform
Set x1, x2, y1, y2 as 20, 50, 100, 200:
 
Histogram equalization
 
Histogram matching to dark
 
Histogram matching to light
 
CH4 geometric transformation
Move
Move 20 right and 50 down:
 
Horizontal mirror
 
Vertical mirror
 
Scale
 
Rotate
Rotate 30 degrees counterclockwise:
 
Image projection restore
 
 
CH5 spatial domain image enhancement
Smooth average
Kernel size 3:
 
Kernel size 5:
 
Kernel size 7:
 
Smooth gaussian
 
Log edge detection
 
Average vs Gaussian vs Median filter
 
Roberts cross gradient operator
Positive 45 degrees v.s. Negative 45 degrees v.s. Positive+Negative 45 degrees:
 
Sobel gradient operator
Vertical v.s. Horizontal v.s. Vertical+Horizontal:
 
Laplacian operator
90 degrees rotation isotropy v.s. 45 degrees rotation isotropy v.s. Weighted
 
Enhancement
Roberts positive 45 degrees:
 
Sobel vertical:
 
Laplacian weighted:
 
CH6 frequency domain image enhancement
Ideal low pass filter
 
Gauss low pass filter
 
Gauss high pass filter
 
Laplace filter
 
Gauss band rejection filter
Image and noised image in frequency domain:

Filter and filterd image in frequency domain:

Before and after applying Gauss band rejection filter:

CH7 color image processing
CMY
 
HSI
 
HSV
 
YUV
 
YIQ
 
Color compensating
 
 
Color balancing
 
CH8 morphology image processing
Erode using 3 x 3 square kernel and using cross kernel
 
Dilate using 3 x 3 square kernel and using cross kernel
 
Erode operation and open operation
 
Dilate operation and close operation
 
Hit-or-miss transform with 50 x 50 square kernel
 
Extract boundary
 
Trace boundary
 
Fill region
 
Label connected component
 
Thining
 
Pixelate
 
Convex hull unconstrained and constrained(using bounding rectangle)
 
Gray dilate
 
Gray erode
 
Gray open
 
Gray close
 
Top-hat transform
 
CH9 image segmentation
Edge detection using Prewitt operator
 
Edge detection using Sobel operator
 
Edge detection using LoG operator
 
Canny edge detector
 
Hough transformation for line detection
 
Automatically choose threshold for binarization
 
Region growing for image segmentation
 
Region splitting(decomposing) for image segmentation
