2010-12-16 2 views
3

Можно создать дубликат:
detect if a pixel in RGB image belong to a line between two other pixels (MATLAB)получить пиксели линии -: - MATLAB

Я хочу, чтобы обнаружить два пикселя в изображении и получить весь пиксель нарисованной линии между ними .

Я не хочу строить линию, я просто хочу получить все позиции пикселей [как (x, y) на изображении] практически линии между двумя пикселями .

, который функционирует в MATLAB, может помочь мне в этом коде и как его использовать? .

спасибо!

+0

И еще несколько связанных вопросов: [Получить все пиксельные координаты вектора внутри изображения] (http://stackoverflow.com/questions/1429210/get-all-pixel-coordinates-of-a-vector-inside -a-image), [MATLAB: рисование линии над черно-белым изображением] (http://stackoverflow.com/questions/2464637/matlab-drawing-a-line-over-a-black-and-white- image) – gnovice 2010-12-16 17:30:55

ответ

4

Вам нужно что-то вроде Bresenham's line algorithm. Я не знаю о функции Matlab для этого, но теперь, когда вы знаете, что ищете, ваш поиск может быть более плодотворным. И это не очень сложно реализовать в Matlab.

0

Решение простого линейного уравнения y = m*x + b (или его параметрической формы), а затем проверка того, какие пиксели, которые проходят линия, также могут быть достаточными. Это зависит от того, насколько точна ваша линия. Конечно, линейный алгоритм Брешенема даст более точные результаты (более тонкая, более красивая линия).

+0

y = m * x + b .......... Я не думаю, что он может делать то, что я хочу правильно, так как многие строки в одном масштабе имеют одинаковый наклон, и я обрабатываю пиксели, которые имеют область (а не абсолютную точку), и некоторые пиксели не могут достичь линейного уравнения точно ........ Я попытаюсь использовать алгоритм линии Брешенема ... спасибо всем – user504363 2010-12-16 13:51:30

0

Если я правильно понял ваш вопрос, у вас есть два вопроса.

(1) Как определить два пикселя в изображении --- Это будет во многом зависеть от других вещей, которые вы не упомянули в своем вопросе, их свойств, таких как их цвета, местоположения на изображении (они вместе или отдельно), относительная доля этих двух пикселей относительно всего размера изображения (для разработки эффективного метода обнаружения.)

(2) Как отображать пиксели без линий между ними --- Я полагаю, вы может дать 0,5 сдвига ко всем позициям пикселей и использовать «pcolor» для отображения изображения. Затем вы можете ввести следующее:

p = pcolor (X, Y, C);

set (p, 'EdgeColor', 'none'); % Это приведет к удалению линий между пикселями.

Удачи.

Смежные вопросы