matlab - 在matlab中查找像素位置

标签 matlab image-processing scanning

我需要扫描(一半)二进制图像并仅存储(或标记)第一个黑色像素的位置。我在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/

相关文章:

image-processing - 使用模糊文本改善 Tesseract OCR 结果

python - 通过 Python 扫描指令从打印机获取 PDF 文件

c++ - C/C++ LIBTIFF : Need to read pixel location of white and black pixels from BW TIFF files

matlab - matlab中两幅彩色图像的直方图匹配

macos - 如何在Cocoa中使用IKScannerDeviceView

metadata - 建议数据库存储有关 2 亿张图像(100 万本书)的元数据(NoSQL?SQL?)

algorithm - 创建一个沿行和列具有常量和的二维二进制矩阵

python - MATLAB 中 "filter"的等效 Python 函数是什么?

matlab - 小批量学习中列向量和行向量相乘的批处理

matlab - 从开始和结束数字的向量创建一个序列