Выпуклая оболочка с предопределенным количеством вершин

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

Моя цель состоит в том, чтобы заставить алгоритм выпуклой оболочки найти 4 лучших вершины, которые будут охватывать мои многоугольники (то есть 4 лучших вершины в каждом полигоне). Это возможно? Пример кода будет оценен.

Спасибо

введите описание изображения здесь

1 ответ

Проблема ограничивающего многоугольника минимальной площади кратко упоминается в разделе "Геометрические приложения алгоритма поиска матрицы" (см. Раздел "Приложения"). Это не просто и, вероятно, не путь для вас.

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

введите описание изображения здесь

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

Если вы настаиваете на наличии прямоугольника, вычислите выпуклую оболочку и найдите минимальную площадь или минимальный прямоугольник, ограничивающий периметр, методом вращающихся штангенциркулей. https://geidav.wordpress.com/tag/rotating-calipers/

Другие вопросы по тегам