определить, принадлежит ли пиксель в изображении RGB к линии между двумя другими пикселями (MATLAB) - PullRequest
4 голосов
/ 11 ноября 2010

У меня проблема в моем проекте Matlab

У меня есть цветное изображение RGB, и у меня есть два указанных пикселя (x1, y1) и (x2, y2). Я хочу проверить каждый пиксель в изображениии определить, принадлежит ли пиксель к линии между (x1, y1) и (x2, y2)

Я пытался использовать эти функции

m = (y2-y1) / (x2-x1);b = y1 - m * x1;если (у == м * х + б), то ИСТИНА

но это почти не получается

У кого-нибудь есть другой способ решить эту проблему?пожалуйста

Спасибо

Ответы [ 2 ]

3 голосов
/ 11 ноября 2010

Вы, хотя можете и не знать об этом, пытаетесь реализовать Алгоритм Брезенхема или аналогичный алгоритм.

3 голосов
/ 11 ноября 2010

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

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

if abs(m*x+b -y) < tolerance  

вместо прямого равенства

...