Abstract: To detect the edges from an input image.Edge detection is a fundamental tool in image processing and computer vision.It is the baseline in the areas of feature detection and feature extraction.Actually it identifies points in a image at which the image brightness changes sharply,i.e. image brightness has discontinuities.
Thus if an image is given as input,detecting the edges from the image is the goal.
WishList:
During image accusition it is obvious some noise will be introduced in the image.
My wish is to detect only actual edges in noisy environment also.
I wish it to detect the edges from colour images also.
Solution Design
High Level Solution Architecture
Computing a measure of edge strength.It is usually a first order derivative expression such as gradient magnitude.
Searching for local directional maxima of the gradient magnitude using a computed estimate of the local orientation of the edge.It is usually the gradient direction..
Smoothing the image typically Gaussian Smoothing.
Thresholding to apply the threshold,to decide whether edges are present or not on an image point.The lower the threshold, the more edges will be detected.So,the result will be increasingly susceptible to noise as it will detect edges of irrelevant features in the image. Conversely a high threshold may miss subtle edges, or result in fragmented edges.
Edge Linking just connecting the edges detected by above steps.
Library
Writing code in openCV.
Reading image,writing image code are available in opencv library.
Block Diagram
Implementation Plan
Language: C
Tool: OpenCV
Amount of code:300-400 lines of code
Time needed:50 hours
Current Status:25% done
Expected timeline for rest:45 hours
Testing/Evaluation Plan
To check for correctness I will simply check whether the edges of the image is detected correctly or not.
For Performance measurement I will check whether only actual edges are being detected no unnecessary edges come.
I have planned for different types of test cases:
Images available in Internet
Images captured by me
Context
Edge detection is a fundamental tool in image processing,image analysis,image pattern recognition and computer vision.
For most of the image processing applications like feature detection and feature extraction,edge detection is the baseline for each such case.
The purpose of detecting sharp changes in image brightness is to capture important events and changes in properties of the world.
For detecting lines,circles,elipses in an image hough trasform is used.So there may be an extension of edge detection is of detecting lines,circles,ellipses etc from the image.One possible sequence is after detecting the edges from an image lines,circles etc are detected.
References
H.G. Barrow and J.M. Tenenbaum (1981) "Interpreting line drawings as three-dimensional surfaces", Artificial Intelligence, vol 17, issues 1-3, pages 75-116.
T. Lindeberg (2001) "Edge detection", in M. Hazewinkel (editor), Encyclopedia of Mathematics, Kluwer/Springer, ISBN 1402006098.
T. Lindeberg (1998) "Edge detection and ridge detection with automatic scale selection", International Journal of Computer Vision, 30, 2, pages 117--154.
Zhai, L., Dong, S., and Ma, H. 2008. Recent Methods and Applications on Image Edge Detection. In Proceedings of the 2008 international Workshop on Education Technology and Training & 2008 international Workshop on Geoscience and Remote Sensing - Volume 01 (December 21–22, 2008). ETTANDGRS. IEEE Computer Society, Washington, DC, 332-335. DOI= http://dx.doi.org/10.1109/ETTandGRS.2008.39.
W. Zhang and F. Bergholm (1997) "Multi-scale blur estimation and edge type classification for scene analysis", International Journal of Computer Vision, vol 24, issue 3, Pages: 219 - 250.
T. Lindeberg (1998) "Edge detection and ridge detection with automatic scale selection", International Journal of Computer Vision, 30, 2, page 1.