Creating edge detection kernel

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,

 Respuesta aceptada

Image Analyst
Image Analyst el 10 de Feb. de 2015
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 comentarios

mona
mona el 11 de Feb. de 2015
This is clearing up a bit but I do have another question.
So this means that rho and theta are computed within the loop for varying values of x and y. Then the values are embedded into the conditional statements within S(x,y) to check whether the conditions are satisfied or not. Depending on this 'a' or 'a+h' are assigned for each element within the kernel, am I right or I'm missing something?
mona
mona el 11 de Feb. de 2015
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 el 11 de Feb. de 2015
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?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 10 de Feb. de 2015

Comentada:

el 11 de Feb. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by