c ++ Определить изображения в контуре многоугольника

Я использую GPC (General Polygon Clipper) создавать наборы изображений. Я не могу определить, являются ли изображения из непересекающихся множеств, хотя.

Я использую gpc_polygon Структура, определенная по ссылке выше, чтение списка вершин из данных изображения (широта / долгота углов) … И последовательное добавление изображений в многоугольник.

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

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

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

Это то же самое, что я удаляю изображения из полигона, используя оператор DIFF.

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

0

Решение

Я использовал num_contours с предельным значением 2 вместо 1, и мне пришлось итеративно возвращаться назад и пытаться повторно добавлять контуры, пока я не смог их добавить. Решение является неоптимальным, может быть очень медленным, и существуют ситуации, когда многоугольники, которые не принадлежат друг другу, оказываются в одном контуре.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector