Creating edge detection kernel

3 次查看(过去 30 天)
I would appreciate if someone can briefly outline on how one can generate a 5x5 edge detection mask using an ideal step function: S(x,y)={(a for (xcosθ+ysinθ)<ρ AND a+h for (xcosθ+ysinθ)≥ρ)} which can be geometrically represented as follows:
I actually need to generate a mask so that I can apply it onto an image to detect edges. I would appreciate if someone can give me a detailed or high level idea.
Thank you,

采纳的回答

Image Analyst
Image Analyst 2015-2-10
Did you try a for loop over row and columns and use your formula:
for col = 1 : 5
for row = 1 : 5
rho = sqrt((row-2)^2+(col-2)^2);
theta = atand2(row/col);
and so on... Give it a try - it's not that hard. Remember x is column and y is row.
  3 个评论
mona
mona 2015-2-11
I am mainly referring to page 21, section 9.2 in the following link: http://disp.ee.ntu.edu.tw/henry/edge_detection.pdf
Here, x matrix given in (55) is generated from equation (37).
Image Analyst
Image Analyst 2015-2-11
Yes, you assign either a or a+h depending on if the center of the pixel is in the circle or shaded part.
His email is given in the paper and he said he had MATLAB code. Why don't you just ask him for the code?

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by