Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何使用bwlabel或regionprops提取每个标签的像素集?_Image Processing_Matlab - Fatal编程技术网

Image processing 如何使用bwlabel或regionprops提取每个标签的像素集?

Image processing 如何使用bwlabel或regionprops提取每个标签的像素集?,image-processing,matlab,Image Processing,Matlab,我正在关注这个 我们的目标是能够吐出: A.每个标记对象的中心 B与每个标记对象关联的所有像素 在某种程度上,我对每个对象都有一个“a.”数组,或者对每个对象都有一个“b.”数组 我真的不知道该怎么办。是否有matlabl工具可以帮助提取这些像素集或每个标签的中心 更新 我确实成功地圈出了80%我想要使用的东西,但是它不能准确地捕捉标签,只是在捕捉背景的同时在它们周围设置一个圆圈,这真的是不可避免的吗?我只是不知道如何访问每个圆圈项目的像素集 r=regionprops(L, 'All');

我正在关注这个

我们的目标是能够吐出: A.每个标记对象的中心 B与每个标记对象关联的所有像素

在某种程度上,我对每个对象都有一个“a.”数组,或者对每个对象都有一个“b.”数组

我真的不知道该怎么办。是否有matlabl工具可以帮助提取这些像素集或每个标签的中心

更新 我确实成功地圈出了80%我想要使用的东西,但是它不能准确地捕捉标签,只是在捕捉背景的同时在它们周围设置一个圆圈,这真的是不可避免的吗?我只是不知道如何访问每个圆圈项目的像素集

r=regionprops(L, 'All'); imshow(imagergb); areas={r.Area}; Bboxes={r.BoundingBox};
for k=2:numel(r)
    if areas{k}>50 && areas{k} < 1100 
        rectangle('Position',Bboxes{k}, 'LineWidth',1, 'EdgeColor','b', 'Curvature', [1 1]); 
    end
end
然后

但无法计算出如何获得每个像素的位置

我也试过了

Z= bwlabel(L);
但是imshow(Z==1)吐出所有标签,imshow(Z==2)吐出背景、所有标签和背景。无法测试bwlabeln,因为我不确定为r和c参数输入什么

使用regionprops(L,'PixelIdxList')是正确的。它为您提供每个标签的像素索引列表。然后可以使用(例如,对于第一个标签)将它们转换为
[x,y]
坐标


您可以使用
regionprops(L,'Centroid')
获得标签中心。这已经为每个标签提供了
[x,y]
坐标。请注意,这些是亚像素坐标,因此如果要将它们用作索引,可能需要对其进行舍入。

请提及
质心
,以便我可以删除我的质心。直到我贴出来我才看到你的答案。没问题:)给你,你这个笨蛋,真的做到了。谢谢你!P.s必须在MATLAB中将[y,x]切换到[x,y],第一个索引指行(图像中的y),第二个索引指列(图像中的x)。例如,尝试查看标签7,它对应于左下角的一个对象(小x,大y)。看看
x
y
的值,自己看看哪个是“这真的是不可避免的吗”不,这段代码是为了这个答案中的一个特定目的而写的:你可以用
regionprops
的输出做很多其他事情。
element1 = r(1).PixelIdxList
Z= bwlabel(L);
[y,x] = ind2sub(size(L), r(1).PixelIdxList)