Description
Problem 1: Geometric Image Modification (40%)
In this problem, you will need to apply geometric modification and spatial warping techniques to
do some interesting image processing tricks. Please note that during these operations, you may
need to solve some linear equations to get the matrix parameters.
(a) Geometric warping (Basic: 20%)
Design and implement a spatial warping technique that transforms an input square image into an
output image of a disk-shaped image. An example is given in Figure 1.
Figure 1. Warp the original Panda image to disk-shaped image
The wrapped image should satisfy the following three requirements:
• Pixels that lie on boundaries of the square should still lie on the boundaries of the circle.
• The center of original images should be mapped to the center of warped images.
• The mapping should be reversible, i.e. it is a one-to-one mapping.
EE569 Digital Image Processing Homework # 3
Professor C.-C. Jay Kuo – 2 –
Apply the same developed spatial warping algorithm to Hedwig, Raccoon and bb8 images in
Figure 2.
Figure 2. Hedwig, Raccoon and bb8 images
(1) describe your approach as clearly as possible and show the resulting images.
(2) apply the reverse spatial warping to each warped image to recover its original image.
(3) Compare the recovered square image with the original square image. Is there any
difference between two images? If any, explain sources of distortion in detail.
(b) Homographic Transformation and Image Stitching (Basic: 20%)
One can use homographic transformation and image stitching techniques to create panorama that
consisting of multiple images. One example (Taken from MATLAB examples [1]) is shown in
Figure. 3. The left image were taken with an uncalibrated smart phone camera by sweeping the
camera from left to right along the horizon to capture all parts of the building. The right
panorama is the desired output by stitching transformed images.
Figure 3. An example of image stitching to make panorama [1]
EE569 Digital Image Processing Homework # 3 v1
Professor C.-C. Jay Kuo – 3 –
This example involves five images to composite. However, the basic principle is to process in
terms of consecutive pair of images. It could be achieved by following these steps:
• Select control points from both images. You can use SIFT/SURF feature detection and
FLANN feature matching to detect control points. You are allowed to use OpenCV
source ONLY for selecting control points, online source refer to [2].
• Apply homographic transformation to find a homograph mapping (described below).
• Wrap one image onto the other using the estimated transformation.
• Create a new image big enough to hold the panorama and composite the wrapped image
into it.
You can composite by simply averaging the pixel values where the two images overlap.
The homographic transformation procedure is stated below. Images of points in a plane, from
two different camera viewpoints, under perspective projection (pin hole camera models) are
related by a homography:
�” = ��%
where � is a 3×3 homographic transformation matrix, �% and �” denote the corresponding image
points in homogeneous coordinates before and after the transform, respectively. Specifically, we
have
&
�”
(
�”
(
�”
(
+ = ,
�%% �%” �%-
�”% �”” �”-
�-% �-” �–
./
�%
�%
1
1
2
�”
�”
3 =
⎣
⎢
⎢
⎢
⎡
�”
(
�”
(
�”
(
�”
(
⎦
⎥
⎥
⎥
⎤
To estimate matrix H, you can proceed with the following steps:
• Fix �– = 1 so that there are only 8 parameters to be determined.
• Select four point pairs in two images to build eight linear equations.
• Solve the equations to get the 8 parameters of matrix H.
• After you determine matrix H, you can project all points from one image to another by
following the backward mapping procedure and applying the interpolation technique.
Implement above homographic transformation and stitching techniques to composite the room
images in Figure 4. Show the results and make discussion on the following questions.
(1) How many control points were used? Show the corresponding control points between left
and middle pair, middle and right pair.
(2) How did you select control points? Clearly specify how you use matched feature from
SURF/SIFT to create panorama.
EE569 Digital Image Processing Homework # 3 v1 (02/17/2020)
Professor C.-C. Jay Kuo – 4 –
Figure 4. The lunch room images (left, middle, right.raw) [2]
Problem 2: Morphological processing (60%)
In this problem, you will implement three morphological processing operations: shrinking,
thinning, and skeletonizing. A pattern table (patterntables.pdf) is attached for your reference.
Please show outputs for all following parts in your report and discuss them thoroughly. Please
state any assumptions you make in your solution.
(a) Basic morphological process implementation (Basic: 18%)
Please apply the “shrinking”, “thinning”, and “skeletonizing” filters to the 4 pattern images (fan,
cup, maze.raw), respectively. Show your results, including intermediate processing result and
give reasonable explanation.
Figure 5. fan.raw, cup.raw, maze.raw [3]
(b) Counting games (Basic: 15%)
Please apply morphological processing to image (stars.raw) and discuss your solution for the
following questions:
(1) Count the total number of stars in the image.
EE569 Digital Image Processing Homework # 3 v1 (02/17/2020)
Professor C.-C. Jay Kuo – 5 –
(2) How many different star sizes are present in the image? What is the frequency of these
star sizes?
(Hint: Plot the histogram of the star size with respect to frequency. The star size is the maximum
L2 distance between two pixel (x, y) that belong to the same star.)
(3) Other than basic morphological filters, can you think of other method to do question (1)
and (2)? Explain your algorithm clearly and show your result (Hint will be given in
discussion section.)
Figure 6. stars.raw
(c) PCB analysis (Advanced: 15%)
A printed circuit board (PCB) is shown in Figure 7. You need to design an image processing
algorithm that uses morphological and logical operations to answer the questions below.
(1) How many holes present in the given PCB? Example for a hole in PCB is shown below:
(2) Find the total number of pathways present in the given PCB? A pathway is a link through
which current can flow. Example of a pathway is shown below:
Please discuss your algorithm, results and analysis in detail. You should also submit your
Matlab/C/C++ programs. State any assumptions you make for this problem. A pattern table sheet
(patterntables.pdf) is attached for your reference. Please use this pattern table.
Figure 7. PCB.raw
EE569 Digital Image Processing Homework # 3 v1 (02/17/2020)
Professor C.-C. Jay Kuo – 6 –
(d) Defect detection (Advanced: 12%)
A binary (black and white) image of an inspective symmetry gear is shown in Figure. 8. There
are 12 gear teeth uniformly distributed around the cylinder of a normal gear. The one in Figure. 8
has two teeth missing. They are located at the lower left and the right positions of the wheel. You
are required to design a morphological processing algorithm for automatic missing teeth
detection.
Figure 8. GearTooth.raw
Hint: You may proceed with the following steps:
• Find and display the center locations for the four black circle holes. Find the center of
this gear.
• Estimate the outside radius of this gear in terms of number of pixels.
• Find the positions of the gear teeth in this gear.
• Find and display the position of the missing teeth.
Note: Your outputs for bullet points 1, 3, and 4 should be images that have black background and
some white marks indicating the corresponding positions.
You may choose to develop your own solution without following the hint given above. You need
to explain your method in detail in your report.
Appendix:
Problem 1: Geometric image modification
Hedwig.raw 512×512 24-bit color(RGB)
Raccoon.raw 512×512 24-bit color(RGB)
bb8.raw 512×512 24-bit color(RGB)
left.raw 480×720 24-bit color(RGB)
middle.raw 480×720 24-bit color(RGB)
right.raw 480×720 24-bit color(RGB)
Problem 2: Morphological Processing
fan.raw 558×558 8-bit greyscale
EE569 Digital Image Processing Homework # 3 v1 (02/17/2020)
Professor C.-C. Jay Kuo – 7 –
cup.raw 356×315 8-bit greyscale
maze.raw 558×558 8-bit greyscale
stars.raw 480×640 8-bit greyscale
PCB.raw 239×372 8-bit greyscale
GearTooth.raw 250×250 8-bit greyscale
References:
[1] MATLAB Panorama example: https://www.mathworks.com/help/vision/examples/featurebased-panoramic-image-stitching.html?searchHighlight=stitching&s_tid=doc_srchtitle
[2] OPENCV feature matching example:
https://docs.opencv.org/3.4/d5/d6f/tutorial_feature_flann_matcher.html
[3] lunch rooms from “PASSTA Datasets”, Cvl.isy.liu.se, 2016.
Available: http://www.cvl.isy.liu.se/en/research/datasets/passta/.
[4] MPEG-7 Shape dataset: http://www.dabi.temple.edu/~shape/MPEG7/dataset.html