Robust Image Corner Detection based on the Chord-to-Point Distance Accumulation Technique
1. Find the edge image using the Canny edge detector.
2. Extract edges (curves) from the edge image:
2a. fill gaps if they are within a range and select long edges,
2b. find T-junctions and mark them as T-corners.
2c. obtain the `status' of each selected edge ${\Gamma}$ as either `loop' or `line'.
3. Smooth ${\Gamma}$ using a small width Gaussian kernel in order to remove quantization noises and trivial details. This small scale Gaussian smoothing also offers good localization of corners.
4. At each point of the smoothed curve ${\Gamma_s}$, compute three discrete curvatures following the CPDA technique using three chords of different lengths.
5. Find three normalized curvatures at each point of ${\Gamma_s}$ and then multiply them to obtain the curvature product.
6. Find the local maxima of the absolute curvature products as candidate corners and remove weak corners by comparing with the curvature-threshold ${T_h}$.
7. Calculate angles at each candidate corners obtained from the previous step and compare with the angle-threshold ${\delta}$ to remove false corners.
8. Find corners, if any, between the ends of smoothed `loop' curves and add those corners which are far away from the detected corners.
9. Compare T-corners with the detected corners and add those T-corners which are far away from the detected corners.
Cite As
Mohammad Awrangjeb (2024). Robust Image Corner Detection based on the Chord-to-Point Distance Accumulation Technique (https://www.mathworks.com/matlabcentral/fileexchange/22390-robust-image-corner-detection-based-on-the-chord-to-point-distance-accumulation-technique), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired by: A Corner Detector based on Global and Local Curvature Properties
Inspired: Chord_point distance accumulation for curvature, A Fast Corner Detector Based on the Chord-to-Point Distance Accumulation Technique, Affine Resilient Curvature Scale-Space Corner Detector, A Robust Corner Matching Technique
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.3.0.0 | We set sigma=3 for all curves for the CPDA detector, since setting the sigma value based on the curve-length is rather impractical. This change improves the performance of the detector. |
||
1.2.0.0 | The absolute CPDA curvature values are calculated before normalization (line 118). |
||
1.1.0.0 | Bug fixed at function getcorner(). Thanks to users Natalia & piao lin. |
||
1.0.0.0 |