Первый пиксель изображения - PullRequest
       21

Первый пиксель изображения

1 голос
/ 13 февраля 2012

Я только что отсканировал образец изображения и пытаюсь определить первый пиксель, который имеет значение «0» в двоичном изображении. Я использовал краску для написания текста, и когда я использовал следующую прогу, она всегда ловит самый нижний пиксель.

    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 Ответ

3 голосов
/ 13 февраля 2012

Это во многом зависит от того, что вы считаете «первым пикселем».Предполагая, что вы можете жить с порядком пикселей, который присваивает MATLAB, вы можете использовать

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

Для других мер "первичности" вам придется либо транспонировать входную матрицу (изображение), либо прибегнуть к некоторым другимусовершенствованный способ расчета.

И да, break только разорвет внутренний цикл, как уже указывал Даве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...