資源簡(jiǎn)介
數(shù)字圖像處理作業(yè)canny邊緣檢測(cè)坎尼邊緣檢測(cè)MATLAB源碼及實(shí)驗(yàn)報(bào)告

代碼片段和文件信息
%%%%%坎尼邊緣檢測(cè)器%%%%%
clear;close?all;clc;
gc=imread(‘E:\學(xué)習(xí)\A+數(shù)字圖像處理\實(shí)驗(yàn)2\Lena.jpg‘);
[MN~]=size(gc);
gc=double(gc);
g=gc(::1)*0.299+gc(::2)*0.587+gc(::3)*0.114;%Gray?=?R*0.299?+?G*0.587?+?B*0.114
%%?高斯平滑
m=3;?n=3;?sigma=1;
g1=Kuozhan(gmn);%%將原圖像四周各擴(kuò)展1行1列
gauss=fspecial(‘gaussian‘?[mn]?sigma);%高斯濾波模板
gg=zeros(MN);
for?i=1:M
????for?j=1:N
????????w=g1(i:i+m-1j:j+n-1);
????????gf=w.*gauss;
????????gg(ij)=sum(gf(:));%高斯平滑后的圖像
????end
end
%%?計(jì)算梯度幅值和角度
mgx=[-1?0?1;-2?0?2;-1?0?1];
mgy=[1?2?1;0?0?0;-1?-2?-1];
gg1=Kuozhan(ggmn);
gx=zeros(MN);?gy=zeros(MN);?gm=zeros(MN);
dir=zeros(MN);%方向
for?i=1:M
????for?j=1:N
????????window=gg1(i:i+m-1j:j+n-1);
????????dx=window.*mgx;
????????dy=window.*mgy;
????????dx=dx‘;
????????gx(ij)=sum(dx(:));
????????gy(ij)=sum(dy(:));
????????gm(ij)=sqrt(gx(ij)^2?+?gy(ij)^2);
????????
????????theta=atand(gy(ij)/gx(ij))?+?90;%角度
????????%%確定方向1234分別表示水平、-45°、垂直、+45°邊緣
????????if?(theta?>=?0?&&?theta?45)
????????????dir(ij)?=?3;
????????elseif?(theta?>=?45?&&?theta?90)
????????????dir(ij)?=?2;
????????elseif?(theta?>=?90?&&?theta?135)
????????????dir(ij)?=?1;
????????else
????????????dir(ij)?=?4;
????????end
????end
end
%%?非極大化抑制
gn?=?zeros(MN);%存儲(chǔ)非極大化抑制后的gN(xy)
for?i?=?2:M-1
????for?j=?2:N-1
????????if?(dir(ij)?==?3?&&?gm(ij)?==?max([gm(ij)?gm(ij+1)?gm(ij-1)]))
????????????gn(ij)?=?gm(ij);
????????elseif?(dir(ij)?==?2?&&?gm(ij)?==?max([gm(ij)?gm(i+1j-1)?gm(i-1j+1)]))
????????????gn(ij)?=?gm(ij);
????????elseif?(dir(ij)?==?1?&&?gm(ij)?==?max([gm(ij)?gm(i+1j)?gm(i-1j)]))
????????????gn(ij)?=?gm(ij);
????????elseif?(dir(ij)?==?4?&&?gm(ij)?==?max([gm(ij)?gm(i+1j+1)?gm(i-1j-1)]))
????????????gn(ij)?=?gm(ij);
????????end;
????end;
end;
%%?雙閾值處理
gnh=zeros(MN);%存儲(chǔ)閾值處理后的圖像
TL=0.1*max(max(gn));%低閾值
TH=3*TL;%高閾值
for?i?=?1:M
????for?j?=?1:N
????????if(gn(ij) ???????????gnh(ij)=0;
????????elseif(gn(ij)>TH)
????????????????gnh(ij)=1;
????????%TL ????????elseif?(?gn(i+1j)?????????????????gn(i-1j-1)????????????????????gnh(ij)?=?1;???
????????end??
????end
end
%%?得到結(jié)果
imshow(gnh);
imwrite(gnh‘E:\學(xué)習(xí)\A+數(shù)字圖像處理\實(shí)驗(yàn)2\Lena_canny0.1-1-3.jpg‘);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-06?13:03??canny?edge?detector\
?????文件??????429446??2018-11-23?16:16??canny?edge?detector\brain_canny0.1-1-3.bmp
?????文件????????2545??2018-11-23?16:25??canny?edge?detector\Canny.m
?????文件??????327118??2018-11-23?16:06??canny?edge?detector\house_canny0.25-1-3.bmp
?????文件?????????826??2018-11-23?14:45??canny?edge?detector\Kuozhan.m
?????文件???????14724??2018-11-23?16:25??canny?edge?detector\Lena_canny0.1-1-3.jpg
?????文件??????161295??2018-11-23?16:27??canny?edge?detector\實(shí)驗(yàn)報(bào)告.pdf
- 上一篇:Noisex-92完整版.zip
- 下一篇:用于中文分詞的中文詞庫(kù)包
評(píng)論
共有 條評(píng)論