古詩詞大全網 - 四字成語 - MATLAB(像處理)邊緣密度的實現

MATLAB(像處理)邊緣密度的實現

P=imread('test.jpg');

I=rgb2gray(P);%轉換為灰度圖像

I=edge(I,'robert','vertical');%用robert算子檢測豎直方向的邊緣

figure(1),subplot(1,2,1),imshow(I);

[m n]=size(I);

K=I;

w=9;%窗口寬度

thr=5;%選擇是否連接的閾值,根據情況調整

left=ceil(w/2);

right=n-left;

for i=1:m

for j=left:right

if sum(I(i,(j-left+1):(j+left-1)))>=thr %將密度大於閾值的連接

K(i,(j-left+1):(j+left-1))=1;

end

end

end

figure(1),subplot(1,2,2),imshow(K);

% K為連接邊界後的圖像

se=strel('rectangle',[m,n]);

I=imopen(I,se);

%開運算

se=strel('rectangle',[3,2]);

I=imclose(I,se);

%閉運算

% [m,n]為選擇的m*n運算矩陣

%也可以直接令se=[]自己想用的預算矩陣

%如[1 0 0;0 1 0;0 0 1];