This project contains some interesting image processing algorithms that were wrote in python and c++ from scratch.
This repository contains many interesting image processing algorithms that are written from scratch. Read these codes will allow you to have a comprehensive understanding of the principles of these algorithms. I also have video tutorials for these algorithms here. Go check out if you know Chinese :-)
All codes were wrote in python3.7 or c++
moudles you may need:
python: - numpy for matix calculation
- matplotlib for reading and showing images
- opencv2 for some image operations
you can always run a python script just by
for c++, you need to compile first
when it's done, you are ready to run the executable file by
canny edge detection
It is an algorithm that extracts edges of an image.
It is an algorithm that can theoratically detects shapes that you can write formulas for it.
harris corner detection
This algorithm detects corners.
fast fourier transform
2-D fourier transform for images using fft.
Scale-invariant feature transform, a well-known technique to extract feature points for image matching.
Using balanced K-D tree to find k nearest neighbors of K-dimension points.
Do PCA and SVD using jacobi rotation.(which is accurate but slow)
Stitch different images together after knowing the sift keypoint pairs.
watershed segmentation algorithm.
meanshift segmentation algorithm.
generalized hough transform
template match of images, detects a given template in an query image. The vote space is implemented with a sparse vector to support big images.
closed-form image matting
a classic image matting algorithm proposed in A Closed-Form Solution to Natural Image Matting
a lot to be continued...