Skip to content

This is the English version of the Image processing 100 questions.

Notifications You must be signed in to change notification settings

KuKuXia/Image_Processing_100_Questions

 
 

Repository files navigation

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

  1. I’ll use the Google translator to help me understand his original meaning. Pretty cool, right? It’s the time for NLP.

  2. I may add some additional materials and my own opinions to this repository.

  3. I’ll discard the irrelevant parts and mainly focus on the OpenCV parts.

  4. I’ll update this as soon as possible since I have to do my research project now.

Environment Setting

  1. Go to Miniconda website, download and install it.

  2. Open your terminal, create a virtual environment using following command:

    $ conda create python = 3.6 -n Image_Processing_100
  3. Activate your virtual environment:

    $ source activate Image_Processing_100
  4. Install the packages:

    $ pip install -r requirement.txt

Testing Your Environment

  1. Clone this repository into your local computer:

    $ git clone git@github.com:KuKuXia/Gasyori100knock.git
  2. 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()
  3. Save the file and run it.

    python ./sample.py
  4. Successful if the following image is displayed with a new window! Then if you press any button, it disappears.

  1. Next, see the Tutorial folder to learn numpy related to image processing. (Please skip this if you already know.)

  2. 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

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
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
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
Number Question Number Question
31 Affine Transformation(Skew) 36 JPEG Compression (Step 1) Discrete Cosine Transform
32 Fourier Transfrom 37 PSNR
33 Fourier Transform Low Pass Filter 38 JPEG Compression (Step 2) DCT + Quantization
34 Fourier Transform High Pass Filter 39 JPEG Compression (Step 3) YCbCr Color System
35 Fourier Transform Band Pass Filter 40 JPEG Compression (Step 4) YCbCr + DCT + Quantization
Number Question Number Question
41 Canny Edge Detection (Step 1) Edge Magnitude 46 Hough Transform / Line Detection (Step. 3) Hough Inverse Transform
42 Canny Edge Detection (Step 2) Thinning 47 Morphological Processing (Expansion)
43 Canny Edge Detection (Step 3) Hysteresis Threshold Processing 48 Morphology Processing (Erosion)
44 Hough Transform / Line Detection (Step. 1) Hough Transform 49 Opening Processing
45 Hough Transformation / Line Detection (Step. 2) NMS 50 Closing Processing
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
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
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

About

This is the English version of the Image processing 100 questions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%