Image Processing 100 Questions
This is the English version of image processing 100 questions. The original Japanese repository was created by yoyoyo-yo. It’s updated by him now. To be honest, I can not speak Japanese. Since the code is language independent and I’m preparing for my interview questions about computer vision now. I decided to translate the English version of this 100 questions.
Hope this could help more people and thanks for yoyoyo-yo's great effort.
I'm currently working on ROS and OpenCV, so I'm updating another repository: OpenCV_for_Beginners. Please feel free to fork and pull request.
Before Reading
-
I’ll use the Google translator to help me understand his original meaning. Pretty cool, right? It’s the time for NLP.
-
I may add some additional materials and my own opinions to this repository.
-
I’ll discard the irrelevant parts and mainly focus on the OpenCV parts.
-
I’ll update this as soon as possible since I have to do my research project now.
Environment Setting
-
Go to Miniconda website, download and install it.
-
Open your terminal, create a virtual environment using following command:
$ conda create python = 3.6 -n Image_Processing_100
-
Activate your virtual environment:
$ source activate Image_Processing_100
-
Install the packages:
$ pip install -r requirement.txt
Testing Your Environment
-
Clone this repository into your local computer:
$ git clone [email protected]:KuKuXia/Gasyori100knock.git
-
In the Image_Processing_100_Questions folder, make a new file named sample.py, copy and paste the following code:
import cv2 img = cv2.imread("assets/imori.jpg") cv2.imshow("imori", img) cv2.waitKey(0) cv2.destroyAllWindows()
-
Save the file and run it.
python ./sample.py
-
Successful if the following image is displayed with a new window! Then if you press any button, it disappears.
-
Next, see the Tutorial folder to learn
numpy
related to image processing. (Please skip this if you already know.) -
From now on, please solve the Question. The Question contents are included in each folder. Please use
assets/imori.jpg
in the question. Questions are written in the README.md of each folder.
Content
Question >> Folder
- Question 1 - 10 >> Question_01_10
- Question 11 - 20 >> Question_ 11 _ 20
- Question 21 - 30 >> Question_ 21 _ 30
- Question 31 - 40 >> Question_ 31 _ 40
- Question 41 - 50 >> Question_ 41 _ 50
- Question 51 - 60 >> Question_ 51 _ 60
- Question 61 - 70 >> Question_ 61 _ 70
- Question 71 - 80 >> Quesiton_ 71 _ 80
- Question 81 - 90 >> Question_ 81 _ 90
- Question 91 - 100 >> Question_ 91 _ 100
Note
- This paper is a teaching material to learn fundamental knowledge and theory of image processing.
- In the solution, we do not use main () etc. to simplify the code as much as possible.
- We will use numpy, but we do not post basic knowledge about numpy. Please check each one.
Question
Unresolved issues are unanswered
Question 1-10
Number | Question | Number | Question |
---|---|---|---|
1 | Channel swapping | 6 | Discretization of Color |
2 | Grayscale | 7 | Average Pooling |
3 | Binarization | 8 | Max Pooling |
4 | Binarization of Otsu | 9 | Gaussian Filter |
5 | HSV Conversion | 10 | Median Filter |
Question 11 - 20
Number | Question | Number | Question |
---|---|---|---|
11 | Smoothing Filter | 16 | Prewitt Filter |
12 | Motion Filter | 17 | Laplacian Filter |
13 | MAX_MIN Filter | 18 | Emboss Filter |
14 | Differential Filter | 19 | LoG Filter |
15 | Sobel Filter | 20 | Histogram Display |
Question 21 - 30
Number | Question | Number | Question |
---|---|---|---|
21 | Histogram Normalization | 26 | Bi-linear Interpolation |
22 | Histogram Operation | 27 | Bi-cubic Interpolation |
23 | Histogram Equalization | 28 | Affine transformation (Translation) |
34 | Gamma Correction | 29 | Affine transformation (Scaling) |
25 | Nearest Neighbor Interpolation | 30 | Affine transformation (Rotation)v_1, v_2 |
Question 31 - 40
Question 41 - 50
Question 51 - 60
Number | Question | Number | Question |
---|---|---|---|
51 | Morphology gradient | 56 | Template matching NCC |
52 | Top hat conversion | 57 | Template matching ZNCC |
53 | Black hat conversion | 58 | Labeling 4 Near |
54 | Template matching SSD | 59 | Labeling 8 neighborhood |
55 | Template matching SAD | 60 | Alpha Blend |
Question 61 - 70
Number | Problem | Number | Problem |
---|---|---|---|
61 | 4-connected number | 66 | HOG (Step 1) Gradient intensity · Gradient angle |
62 | 8 - number of connections | 67 | HOG (Step 2) gradient histogram |
63 | Thinning | 68 | HOG (Step 3) Histogram normalization |
64 not yet | Hiruditchi thinning | 69 | HOG (Step 4) Drawing feature quantity |
65 | Zhang-Suen thinning | 70 | Color tracking |
Problem 71 - 80
Number | Problem | Number | Problem |
---|---|---|---|
61 | 4-connected number | 66 | HOG (Step 1) Gradient intensity · Gradient angle |
62 | 8 - number of connections | 67 | HOG (Step 2) gradient histogram |
63 | Thinning | 68 | HOG (Step 3) Histogram normalization |
64 not yet | Hiruditchi thinning | 69 | HOG (Step 4) Drawing feature quantity |
65 | Zhang-Suen thinning | 70 | Color tracking |
TODO
Hough, Gabor, adaptivebinalizatino