Edge detection using sobel operator

조회 수: 5 (최근 30일)
Milind Amga
Milind Amga 2020년 10월 8일
댓글: J. Alex Lee 2020년 10월 9일
Can anyone point out what's causing the error in the code below?
Below is the code for detecting edge using sobel operator.
Thank you for your time and effort in advance.
function output = edgy(a)
a = double(a);
[row col] = size(a);
My = [-1 -2 -1;0 0 0;1 2 1];
Mx =[-1 0 1;-2 0 2;-1 0 1];
a3 =zeros(row,col);
for i =1:row-2
for j=1:col-2
Gx = sum(sum(Mx.*a(i:i+2, j:j+2)));
Gy = sum(sum(My.*a(i:i+2, j:j+2)));
filtered_image(i,j) = sqrt(Gx.^2 + Gy.^2);
end
end
filtered_image = uint8(filtered_image);
thresholdvalue =100;
output = max(filtered_image,thresholdvalue);
end
  댓글 수: 6
Image Analyst
Image Analyst 2020년 10월 8일
Try imfilter().
J. Alex Lee
J. Alex Lee 2020년 10월 9일
Ah ok. If you have access to full matlab (image processing toolbox), look into imfilter() as Image Analyst suggests, but also imgradientxy(). Then later you can look into conv2().

댓글을 달려면 로그인하십시오.

답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by