Title: Basic Image Processing
1Detecting Image Features Corner
2Corners
Given an image, denote the
image gradient.
For each point p and a neighborhood around p,
form the matrix
C is symmetric with two positive eigenvalues. The
eigenvalues give the edge strengths and
eigenvectors give the direction.
3Examples
- Perfectly uniform
- Step edge
- Ideal corner
Eigenvectors and eigenvalues of C
4Algorithm Detecting Corners
Inputs Image I and two parameters the
threshold and sub-window size
- Compute image gradients over I
- For the matrix C over a neighborhood Q of p.
- Compute the second eigenvector
- If save p into a list, L.
- Sort L in decreasing order of
- Scanning the sorted list top to bottom for each
current point p delete all points appearing
furhter on the list which belong to the
neighborhood of p.
5Detecting other structures lines and curves
Lines and curves are important in computer vision
because they define the contours of objects.
- Grouping
- Which image points compose each instance of the
target curve in the image? - Model Fitting Given a set of image points
belonging to a target curve, find the best curve
interpolating the points.
6Hough Transform
- Use for line detection.
- Idea transform a difficult pattern detection
problem into a simple peak detection problem in
the space of parameters.
Parameter Space (m, n) Divide the parameter
space into cells (depend on the needed accuracy)
and associate each cell with a counter set to
zero initially.
7For each point p, increment all counters on the
corresponding line in the parameter space.
Spatial domain
Parameter domain domain
6
1
1
1
0
0
1
0
1
1
6
0
Two peaks
8- Some important points
- Keep parameter space finite. Sample wide
intervals for both m and n but cut down on the
resolution. Another way of parameterize a line - Local maxima of c(m, n) gives multiple lines
- Due to noise and other nonlinear contour, local
noisy peaks appear frequently. Thresholding c(m,
n) is a good solution to prune out noisy peaks. - Works for other types of curve detection with
finite parameter domain.
9Algorithm Hough_Lines
Input a collection of points (pixels) on an image
of size M-by-N. A, B, contains the discretized
intervals of the parameter of sizes R and T.
- Discretize the parameter space.
- Let C(R, T) be an array of integer contours
initialized to be zero. - For each pixel(i, j), for each h 1, , T
- Find index, k, of the element in A closest to
- Increment C(k, h) by 1
- Find all local maxima of C.
10- Remarks on Hough Transform
- It is a voting algorithm. Each point votes for
all combinations of parameters which may have
produced it if it were part of the target curve
(line). The counters in parameter space can be
regarded as a histogram. The final total of
votes c(m) gives the relative likelihood of the
hypothesis a curve with parameter set m exists in
the image. - All data points are processed independently.
- Relatively robust to noise and spurious points
are unlikely to contribute consistently to any
single bin. - It detects multiple lines (curves)
- Weakness 1) dimension of the parameter space 2)
non-target shapes can contribute (low-curvature
circles).