我对图像处理很陌生,我试图获得一个在圆形/椭圆形/奇怪形状的斑点中找到的像素坐标列表。
我能想到的唯一方法就是使用一个包围盒,但不幸的是,包围盒确实穿过了这个区域。
有人有更好的主意吗?
谢谢

发布于 2015-06-24 18:55:32
只需使用find获取像素坐标即可。假设您的映像是二进制并存储在im中,请执行以下操作:
[r,c] = find(im);r和c将是每个白色像素的行和列。这假设对象是完全关闭的--我想提一下一个警告。如果对象内部有洞,请考虑使用imfill来填充这些洞,然后将其与find组合起来。
bw = imfill(im, 'holes');
[r,c] = find(bw);如果有多个对象,请使用regionprops并指定PixelList属性:
s = regionprops(im, 'PixelList');这将返回一个N元素结构,其中每个结构包含一个PixelList字段,该字段包含每个唯一对象的(x,y)坐标。在您的示例中,这将是一个M x 2矩阵,其中第一列是x或列坐标,第二列是y或行坐标。
要访问对象的像素坐标列表,只需执行以下操作:
coords = s(idx).PixelList;idx是您想要访问的对象。
https://stackoverflow.com/questions/31034637
复制相似问题