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];