图像的第一个像素

时间:2012-02-13 07:57:20

标签: image matlab image-processing pixel scanning

我刚扫描了一个样本图像,我正试图检测二进制图像中值为“0”的第一个像素。 我用paint写了一个文本,当我使用下面的prog时,它总是捕获最底部的像素。

    clear all;
    x=imread('textjay.png');
    y=im2bw(x);

    height=size(y,1); % row
    width=size(y,2);  % col

    valueoftheindex=0;

    pixel_value=0;

    for i=1:width
     for j=1:height
      pixel_value=y(j,i);
      if (pixel_value==0)
       valueofthewidth=i;
       valueofthehieght=j;
       break
      end
      end
     end

    valueofthewidth
    valueofthehieght

    imtool(y)

1 个答案:

答案 0 :(得分:3)

这很大程度上取决于你认为是“第一个像素”。 假设你可以使用MATLAB指定的像素顺序,你可以使用

idx = find(y == 0, 1, 'first')
[row_idx, col_idx] = ind2sub(size(y), idx)

对于“第一性”的其他测量,您必须转置输入矩阵(图像),或采用更精确的计算方法。

是的,break只会破坏内循环,正如dawe已经指出的那样。