Нахождение координат точек на границе фигуры - PullRequest
6 голосов
/ 08 февраля 2011

Допустим, у меня есть такая форма:

enter image description here

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

Есть ли алгоритм для такой необходимости? Или софт? Все решения, которые я придумал, включают в себя много ручной работы, особенно если я хочу нарисовать немного другую форму.

Stackoverflow мудрость, пожалуйста, помогите.

Ответы [ 2 ]

6 голосов
/ 08 февраля 2011

Вы можете просто сканировать пиксели по горизонтали и вертикали, чтобы найти цветовые границы, или, если вы хотите более сложное и общее решение, вы можете, например, использовать gradient method для обнаружения краев:

enter image description here

Редактировать

Отвечая на ваш комментарий, изображение представляет собой просто двумерный массив, содержащий значения пикселей. Вы можете проверить каждый пиксель и выбрать те, которые имеют определенный цвет. Как это:

enter image description here

И в результате ваши краевые пиксели:

{{35, 107}, {35, 108}, {35, 109}, {35, 110}, {35, 111},
 {35, 112}, {35, 113}, {35, 114}, {35, 115}, {35, 116},
 {35, 117}, {35, 118}, {35, 119}, {35, 120}, {35, 121},
 {36, 103}, {36, 104}, {36, 105}, {36, 106}, {36, 107}, etc....
2 голосов
/ 08 февраля 2011

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

Если это так, существует ряд доступных решений, включая AutoTrace: http://autotrace.sourceforge.net/

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