Edge detection using Fuzzy Logic
古いコメントを表示
I am trying to detect edge of gray scale image using fuzzy logic. In my code first I am trying to detect edge and then to remove noise. Edge detection part is working,but noise removal part have not worked. Edge detection pixels have values between 0 to 50 and background pixel values have constant value i.e. 128. In case of noise removal I put if else conditions . But each checked pixel i.e. z(i,j) satisfies only if condition whether it is true or not. Following is my code.........
a=imread('a.jpg');
g1=rgb2gray(a);
g=imresize(g1,[200 200]);
[m,n]=size(g);
%figure, imshow(g)
%edge detection part
t=readfis('edge.fis');
z=uint8(zeros(m,n));
for i=2:m-1
for j=2:n-1
F = [g(i-1,j-1) g(i-1,j) g(i,j-1) g(i,j)];
h=double(F);
z(i,j)=evalfis(h,t);
end
end
disp(z)
figure, imshow(z)
%noise removal part
z2=uint8(zeros(m,n));
for i=2:m-1
for j=2:n-1
if ((0<=z(i-1,j-1)<=50) & (0<=z(i-1,j)<=50) & (0<=z(i-1,j+1)<=50) & (0<=z(i,j-1)<=50) & (0<=z(i,j)<=50) & (0<=z(i,j+1)<=50) & (0<=z(i+1,j-1)<=50) & (0<=z(i+1,j)<=50) & (0<=z(i+1,j+1)<=50))
% if z1(i-1,j-1)==0 && z1(i-1,j)==0 && z1(i-1,j+1)==0 && z1(i,j-1)==0 && z1(i,j)==0 && z1(i,j+1)==0 && z1(i+1,j-1)==0 && z1(i+1,j)==0 && z1(i+1,j+1)==0
z2(i,j)=128;
else
z2(i,j)=z(i,j);
end
end
end
figure, imshow(z2)
2 件のコメント
matlab_image
2012 年 5 月 31 日
hi Res,
I cant help you but i need ur help. i also want to do edge detection with fuzzy logic. but i don't know how to start. can you please suggest me something for writing fuzzy logic code.
Thanks in advance
fati gh
2014 年 3 月 20 日
i need edge detection using fuzzy
回答 (3 件)
Omid Sarrafzadeh
2012 年 7 月 30 日
0 投票
Hi Res It depends on your 'edge.fis' FIS and your rules. May I know more about them?
1 件のコメント
Biswajit
2014 年 3 月 18 日
Hi Res, Can u explain what is 'edge.fis'.
Arkadiy Turevskiy
2014 年 3 月 20 日
0 投票
Please take a look at a new example we added in 14a showing how to do edge detection with Fuzzy Logic .
hamed Aghapanah
2019 年 10 月 4 日
0 投票
Dear Res,
I do it and ind that there are many solution to find edge. Because the result is related to Membership Functions.
which one is the best solution?
thanks
カテゴリ
ヘルプ センター および File Exchange で Fuzzy Logic Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!