首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

MATLAB(图像处理)边缘密度的实现

发布网友 发布时间:2022-04-21 18:52

我来回答

1个回答

热心网友 时间:2023-05-08 02:52

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com