Im using sobel edge detection.
How does Matlab, by itself manage to achieve very thin edges like this one (using just the Matlab's edge function with 'sobel' as parameter)
matlabsobel = edge(originalImage,'sobel')
imshow(matlabsobel)
but when I try to do sobel algorithm my own way, assuming the process is just the same..
originalImage = gaussianizedimage;
threshold = 60.5;
k = [1 2 1; 0 0 0; -1 -2 -1];
H = conv2(double(originalImage),k, 'same');
V = conv2(double(originalImage),k','same');
E = sqrt(H.*H + V.*V);
edgeImage = uint8((E > threshold) * 255);
imshow(edgeImage);
title('sobel algorithm')
Why is that its different? What is still lacking in my implementation to achieve Matlab's thin edges? Can anyone provide code to make it look/similar to Matlab native sobel edge detection?
Thanks

 채택된 답변

Image Analyst
Image Analyst 2014년 8월 21일

1 개 추천

edge() takes a grayscale edge image like you'd get with imgradient(), and then thresholds it and skeletonizes the thresholded image, like you'd get with bwmorph(BW, 'Skel', inf).

댓글 수: 4

Ivan Matala
Ivan Matala 2014년 8월 21일
@Image Analyst
thanks for you answer,,, Ive searched bwmorph and if by chance,, do you what is the best suited morphological operation to make it look like the 1st image above?
Thanks
I told you that already. Here is is again, formatted as code this time:
thinEdgeImage = bwmorph(thresholdedImage, 'Skel', inf);
Miroslav Hagara
Miroslav Hagara 2018년 9월 19일
편집: Miroslav Hagara 2018년 9월 19일
according this, if I use this code:
BW1 = edge(I,'Prewitt');
BW2NT = edge(I,'Prewitt','nothinning');
BW2 = bwmorph(BW2NT, 'Skel',Inf);
I should get the same pictures. But this is not true.
I have get better result with
BW2 = bwmorph(BW2NT, 'thin', Inf)
but still without same pictures.
If you look inside edge() you will see:
if thinning
e = computeedge(b,bx,by,kx,ky,int8(offset),100*eps,cutoff);
else
Which does the magic.
MathWorks doesn't specify what's done there.

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

추가 답변 (0개)

질문:

2014년 8월 21일

댓글:

2019년 9월 3일

Community Treasure Hunt

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

Start Hunting!

Translated by