91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: Matlab
  • 標簽: canny??edge??matlab??

資源簡介

該程序實現了基于matlab的canny算子的邊緣檢測,檢測效果十分理想,已經嘗試過,并且可以運行。

資源截圖

代碼片段和文件信息

function?e=canny_edge(Isigma)?
%functione=edge(I‘canny‘threshsigma);
%該函數實現Canny算子提取邊緣點
%輸入圖像為I,標準差sigma,輸出為邊緣圖像e
I=255*double(I);%將圖像轉化為double型
[mn]=size(I);
Rr=2:m-1;cc=2:n-1;
e=repmat(logical(uint8(0))mn);
%產生同樣大小的邊緣圖像e,初始化為1?,即初始化邊緣
GaussianDieOff=0.0001;%設定高斯函數消失門限
PercentOfPixelsNotEdges=0.7;%用于計算邊緣門限
ThresholdRatio=0.2;%設置兩個門限的比例
%首先設計高斯濾波器和它的微分
pw=1:30;
%設定濾波器寬度
ssq=sigma*sigma;
%計算方差
??width?=?find(exp(-(pw.*pw)/(2*ssq))>GaussianDieOff1‘last‘);
??if?isempty(width)
????width?=?1;??%當使用者鍵入很小的sigma時
??end
%計算濾波算子寬度
?t?=?(-width:width);
??gau?=?exp(-(t.*t)/(2*ssq))/(2*pi*ssq);?????%?一維高斯濾波器
?[xy]=meshgrid(-width:width-width:width);
??dgau2D=-x.*exp(-(x.*x+y.*y)/(2*ssq))/(pi*ssq);%高斯濾波器的一階導數
??%平滑圖像
??aSmooth=imfilter(Igau‘conv‘‘replicate‘);???%?按行濾波
??aSmooth=imfilter(aSmoothgau‘‘conv‘‘replicate‘);?%?再按列濾波
??ax?=?imfilter(aSmooth?dgau2D?‘conv‘‘replicate‘);
??ay?=?imfilter(aSmooth?dgau2D‘?‘conv‘‘replicate‘);
??mag=sqrt((ax.*ax)+(ay.*ay));
%計算濾波結果的幅度
magmax=max(mag(:));
if?magmax>0
mag=mag/magmax;
%對濾波幅度進行歸一化
end
%下面根據濾波幅度的概率密度計算濾波門限
[countsx]=imhist(mag64);
%計算濾波結果的幅度的直方圖
highThresh=min(find(cumsum(counts)>PercentOfPixelsNotEdges*m*n))/64;
%通過設定非邊緣點的比例來確定高門限
lowThresh=ThresholdRatio*highThresh;
%設置低門限為高門限乘以比例因子
thresh=[lowThreshhighThresh];
%下面進行非極大抑制
%大于高門限的點歸于強邊緣圖像
%小于低門限的點歸于弱邊緣圖像
idxStrong=[];
for?dir=1:4
?idxLocalMax=cannyFindLocalMaxima(diraxaymag);
idxWeak=idxLocalMax(mag(idxLocalMax)>lowThresh);
e(idxWeak)=1;
idxStrong=[idxStrong;idxWeak(mag(idxWeak)>highThresh)];
end
rstrong=rem(idxStrong-1m)+1;%rem是求余數
cstrong=floor((idxStrong-1)/m)+1;%向-∞取整
e=bwselect(ecstrongrstrong8);????
%通過形態學算子將兩幅圖像的邊緣進行連接
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%???Local?Function?:?cannyFindLocalMaxima
%
function?idxLocalMax?=?cannyFindLocalMaxima(directionixiymag)
%
%?This?sub-function?helps?with?the?non-maximum?suppression?in?the?Canny
%?edge?detector.??The?input?parameters?are:
%?
%???direction?-?the?index?of?which?direction?the?gradient?is?pointing?
%???????????????read?from?the?diagram?below.?direction?is?1?2?3?or?4.
%???ix???

評論

共有 條評論