matlab图像处理,我已经将一副图片转成二值图了,现在需要计算图片里面白点构成物体的长度和深度.
就是对应的横向白像素点数目和纵向白像素点数目,已经定标了能算了但是我是初学者还没弄清楚怎么写.大概思路是创建一个矩阵扫描每行碰到白点就记下1每多1个就+1,列的也一样这样...
就是对应的横向白像素点数目和纵向白像素点数目,已经定标了能算了但是我是初学者还没弄清楚怎么写.大概思路是创建一个矩阵扫描每行碰到白点就记下1每多1个就+1,列的也一样这样数据最大值就是横向和纵向白点的总是了 希望有大神写给我看看
展开
展开全部
p=imread('000.jpg');
pp=rgb2gray(p);
pp=1*(pp>=128)+0*~(pp>=128); %转换为二值图
imshow(pp);
[r,c]=size(pp); %图片宽高
rmax=0;cmax=0;
for k=1:r
mx=sum(pp(k,:)); %值为1为白点,求和即为其宽度
rmax=max([rmax mx]);
end
for k=1:c
mx=sum(pp(:,k));
cmax=max([cmax mx]);
end
disp(' 横长 纵深');
disp([rmax cmax]);
pp=rgb2gray(p);
pp=1*(pp>=128)+0*~(pp>=128); %转换为二值图
imshow(pp);
[r,c]=size(pp); %图片宽高
rmax=0;cmax=0;
for k=1:r
mx=sum(pp(k,:)); %值为1为白点,求和即为其宽度
rmax=max([rmax mx]);
end
for k=1:c
mx=sum(pp(:,k));
cmax=max([cmax mx]);
end
disp(' 横长 纵深');
disp([rmax cmax]);
更多追问追答
追答
% 对不起是我搞错,要找白点,需统计 0 的个数(首先要确认 pp 必须是二值,disp(pp) 看看)
p=imread('000.jpg');
pp=rgb2gray(p);
pp=1*(pp>=128)+0*~(pp>=128); %转换为二值图
imshow(pp);
[r,c]=size(pp); %图片宽高
rmax=0;cmax=0;
for k=1:r
mx=c-sum(pp(k,:)); %值为1为白点,求和即为其宽度
rmax=max([rmax mx]);
end
for k=1:c
mx=r-sum(pp(:,k));
cmax=max([cmax mx]);
end
disp(' 横长 纵深');
disp([rmax cmax]);
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询