Найти все пиксели на линии в Java - PullRequest
4 голосов
/ 07 февраля 2012

Чтобы получить право на это: скажем, у меня есть два определенных пикселя a & b, а также список случайных других.Теперь я хочу проверить все пиксели в этом списке, если они находятся на линии, которая проходит через a & b (но НЕ ограничивается наличием a & b в качестве конечных точек!)точки между a & b?Я также взглянул на линейные уравнения в целом, но я застрял на том, как правильно дискретизировать непрерывную линию в пиксели ...

(я пытаюсь реализовать алгоритм случайной выборки вJava, который пытается найти строку с наибольшим количеством пикселей, если это имеет значение).

Большое спасибо за любую помощь с этим:)

Ответы [ 2 ]

4 голосов
/ 07 февраля 2012

Я настоятельно рекомендую вам вычислить расстояние между точкой и линией .

Если вы используете один пиксель в качестве единицы измерения (что вы будете использовать, если работаете в системе координат пикселей), вы можете просто проверить, равно ли расстояние от точки до линии <1. </p>

Вот как рассчитать расстояние между точкой и линией:

0 голосов
/ 07 февраля 2012

Вы можете искать не между a и b, а между точками, находящимися на одной линии, но за пределами изображения.Вы можете получить их, просто поместив вектор (ba) необходимое количество раз в сторону a и в сторону b.И используйте алгоритм линии вашего Брезенхэма.

Что касается более конкретных ответов, определите вопрос лучше, пожалуйста.Считаете ли вы пиксели точками, квадратами или кругами?Что такое «пиксель на линии» в ваших терминах?Какую ширину имеет ваша линия?Вы ищете линию с максимальным количеством пикселей на см длины или в границах прямоугольника?Среди каких строк вы ищете?

...