File Exchange

image thumbnail

Affine Resilient Curvature Scale-Space Corner Detector

version 1.0 (233 KB) by

Apply the affine-length parameterized curvature to the CSS corner detection technique.

23 Downloads

Updated

View License

1. Find edge image using the Canny edge detector.
2. Extract edges from the edge image:
   a. fill gaps if they are within a range and select long edges,
   b. find T-junctions and mark them as T-corners.
3. Parameterize each edge with its affine-length.
4. For each parameterized edge, compute absolute curvature at an appropriate scale in {σm, σm+1, σm+2} and determine corners by comparing the curvature maxima to the corresponding curvature threshold of edge in {tm, tm+1, tm+2} and the neighboring minima.
5. Track the corners down to the lowest scale considering a small
neighborhood in order to improve localization.
6. Further track the corners on the original edge at the lowest scale considering the same neighborhood size.
7. Remove multiple occurrences of same corners, compare Tcorners with the tracked corners and add those T-corners which are far away from the detected corners.

Comments and Ratings (5)

Hi Just Rookie,
You can change curve length in extract_curve function. Look for the following code:

if size(cur,1)>(size(BW,1)+size(BW,2))/15

If you change the last number 15, you change the minimum curve length. Big number means small curve length and vice versa.

Also, you may need to change the sigma value in the Gaussian function. At the moment they are 3, 4 and 5 (see global GFP variable). You may need to decrease these values to work with small curve lengths.

Hope this help you.

-Mohammad

Just Rookie

Hi,I want to chose the curve if its length is bigger than 15 or 20,but when I change your source code,some errors will come up.So how to change the minimum length of curve?

Meng

Meng (view profile)

MATLAB Release
MATLAB 7 (R14)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video