我有这个分段图像,我需要找到标记为'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)
将返回第1个像素的索引。那么,有没有办法使用循环找到其余的像素?任何帮助/建议/建议都得到了适当的赞赏。非常感谢。
答案 0 :(得分: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