数字图像matlab边缘检测(一)
生活随笔
收集整理的這篇文章主要介紹了
数字图像matlab边缘检测(一)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.圖像的一階邊緣檢測(cè)
?圖像的邊緣檢測(cè),是圖像分割的重要依據(jù),一般圖像的邊緣可分為階梯狀,脈沖狀,屋頂狀
一階微分算子主要是依據(jù)圖像梯度在邊緣取得最大值。
數(shù)據(jù)模板
| a0 | a1 | a2 |
| a3 | a4 | a5 |
| a6 | a7 | a8 |
?
mx=(a2+C*a5+a8)-(a0+C*a3+a6)
my=(a6+C*a7+a8)-(a0+C*C1+a2)
當(dāng)C=1時(shí),就是Prewitt算子,當(dāng)C=2時(shí),就是Sobel算子
2.圖像二階微分算子檢測(cè)邊緣
邊緣處會(huì)出現(xiàn)二階微分為零值點(diǎn)
| 0 | 1 | 0 |
| 1 | -4 | 1 |
| 0 | ?1 | 0 |
接下來(lái)主要是講高斯拉普拉斯算子(LOG)算法
?
?
?
function e=log_edge(a,sigma) %工能:實(shí)現(xiàn)log算子提取邊緣點(diǎn) %輸出:a-灰度圖像, sigma-濾波器參數(shù) %輸出 e--邊緣圖像 %產(chǎn)生同樣大小的邊緣圖像e 初始化為0 [m,n]=size(a); e=repmat(logical(uint8(0)),m,n); rr=2:m-1; cc=2:n-1; %選擇點(diǎn)數(shù)為奇數(shù)的濾波器尺寸,fsize>6*sigma fsize=ceil(sigma*3)*2+1; %產(chǎn)生log濾波器 op=fspecial('log',fsize,sigma); %將濾波器的均值變?yōu)? op=op-sum(op(:))/numel(op); %利用Log算子對(duì)圖像濾波 b=filter2(op,a); %設(shè)置過(guò)零檢測(cè)的門(mén)限 %尋找濾波后的過(guò)零點(diǎn),選擇邊緣點(diǎn)為負(fù)值的點(diǎn) thresh=.75*mean2(abs(b(rr,cc))); %[+ 0 - ]從左向右 [rx,cx]=find(b(rr,cc)<0&b(rr,cc+1)>0&abs(b(rr,cc)-b(rr,cc+1))>thresh); e((rx+1)+cx*m)=1; %[- 0 +]從右到左 [rx,cx]=find(b(rr,cc-1)>0&b(rr,cc)<0&abs(b(rr,cc-1)-b(rr,cc))>thresh); e((rx+1+cx*m))=1; %[- 0 +]' 從上到下 [rx,cx]=find(b(rr,cc)<0&b(rr+1,cc)>0&abs(b(rr,cc)-b(rr+1,cc))>thresh); e((rx+1)+cx*m)=1; %[+ 0 -]' 從下到上 [rx,cx]=find(b(rr-1,cc)>0&b(rr,cc)<0&abs(b(rr-1,cc)-b(rr,cc))>thresh); e((rx+1)+cx*m)=1; %尋找濾波后的過(guò)零點(diǎn),邊緣剛好在濾波值為零點(diǎn)上 [rz,cz]=find(b(rr,cc)==0); if ~isempty(rz) %零點(diǎn)的線(xiàn)性坐標(biāo) zero=(rz+1)+cz*m; % zz=b(zero-1)<0 & b(zero+1)>0 & abs(b(zero-1)-b(zero+1))>2*thresh; e(zero(zz))=1; % zz=b(zero-1)>0 & b(zero+1)<0 & abs(b(zero-1)-b(zero+1))>2*thresh; e(zero(zz))=1; % zz=b(zero-m)<0 & b(zero+m)>0 & abs(b(zero-m)-b(zero+m))>2*thresh; e(zero(zz))=1; % zz=b(zero-m)>0 & b(zero+m)<0 & abs(b(zero-m)-b(zero+m))>2*thresh; e(zero(zz))=1; end?
參考《MAtlab數(shù)字圖像處理詳解》作者:趙小川
總結(jié)
以上是生活随笔為你收集整理的数字图像matlab边缘检测(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 你遇到过启动电脑以后系统桌面无法显示吗
- 下一篇: matlab 声源定位csdn_[转]基