我需要扫描(一半)二进制图像并仅存储(或标记)第一个黑色像素的位置。我在matlab中尝试过这个。但代码显示了所有黑色像素的位置。我的代码是这样的。
I= imread('binary image');
imshow(I);
[r c] =size(I);
for j=1:c/2
for i=1:r
if(I(i,j)==1)
[i j]
end
end
end
任何改进此问题的建议...
最佳答案
为了避免循环,您还可以使用 Matlab 的 find
功能:
[i,j] = find(I==1,1,'first')
这意味着“找到 I 中第一个等于 1 的元素”。 (find(I==1,k,first)
查找前 k 个元素)。
(顺便说一句 - 文档似乎没有提及他们是否在找到第一个索引后停止扫描矩阵(如果这就是所要求的) - 我认为是这样,出于效率目的?)。 p>
关于matlab - 在matlab中查找像素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052304/