如何使用循环查找像素标签的索引



我有这个分割图像,我需要找到所有标记为' 20 '的像素的索引我知道我可以很容易地做到这一点,用代码:

img = [00 00 00 00 00 00 00 00;
       00 20 00 00 00 20 00 00;
       00 00 30 00 00 00 00 00;
       10 10 10 00 20 00 00 00;
       10 10 10 40 40 40 40 40;
       10 10 10 40 40 40 20 40;
       10 10 10 40 40 40 40 40];
[img_row, img_col] = find(img==20)
imgIdx             = sub2ind(size(img), img_row, img_col);

这将返回感兴趣的像素的所有索引的向量。然而,我宁愿一个接一个地找到这些像素,我知道:

imgIdx = find(img==20, 1)

将返回第一个像素的索引。因此,是否有一种方法来找到剩下的这些像素使用循环?任何帮助/建议/意见,我们都非常感激。多谢。

当然,循环遍历具有数千到数百万个元素的图像是不高效的。但如果你坚持,总有一个循环的解决方案。

for ii = 1:numel(img)
    if img(ii) == 20
        % do_the_thing
    end
end

尽管如此,即使我必须遍历% do_the_thing,我也会在获得所有索引后执行:

imgIdx = find(img == 20);
for ii = 1:numel(imgIdx)
    % imgIdx(ii) !!!
    % do_the_thing
end

最新更新