edge detection : Code sobel
Show older comments
hello,someone correct me this program please.
I=imread('lena.jpg');
I=rgb2gray(I);
[i j]=size(I);
I=double(I)/255;
level=0.5;
%carte de gradient
MH= [1 2 1; 0 0 0;-1 -2 -1];
GH = conv2 (I, MH);
figure(1),imshow(GH), title('Contours horizontal');
MV= [-1 0 1; -2 0 2; -1 0 1];
GV = conv2 (I, MV);
figure(2),imshow(GV), title('Contours vertical');
G=sqrt(GH.*GH + GV.*GV);
G=im2bw(G,level);
figure(3),imshow(G), title('Contours global');
%direction du gradient
eq=imdivide(GH,GV);
eq=atan(eq);
eq= (eq*180)/pi;
figure(4),imshow(eq),title ('direction gradient');
%seuillage et suppression des non maximum locaux
for i = 1 : size(eq,1)
j = 1 : size(eq,2)
if level > eq(i,j)
eq(i,j) = 0;
if level < eq(i,j)
eq(i,j) = 255;
end
end
end
eq = im2bw(eq,level);
figure(5), imshow(eq)
6 Comments
KALYAN ACHARJYA
on 2 Aug 2020
Issue?
malak alexos
on 2 Aug 2020
Image Analyst
on 2 Aug 2020
Try imgradient() and imgradientxy()
malak alexos
on 3 Aug 2020
Image Analyst
on 3 Aug 2020
Why not? Is it your homework assignment? If so, tag it as homework.
malak alexos
on 3 Aug 2020
Answers (0)
Categories
Find more on Object Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!