C ++ - ObjC OpenCV ограниченный Делоне
Я успешно реализовал триангуляцию Делоне для контура в OpenCV 2.3.1.
С помощью cvPointPolygonTest я могу получить все треугольники в выпуклой оболочке, затем я попытался выполнить еще один cvPointPolygonTest на центроиде треугольников, чтобы узнать, являются ли онив основном контуре или нет, поэтому я могу иметь ограниченную триангуляцию контура.
Но это не работает, как некоторые треугольники (например, с ходячим человеком, у которого две ноги удалены)«над» дырой.
Кто-нибудь знает способ выполнения ограниченной триангуляции. Я думал о выпуклости дефектов, но не могу понять, как начать с этого.
Заранее спасибо !
Бен
На самом деле это проблема не выпуклых дефектов корпуса, а проблема триангуляции. Это изображение покажет вам проблемы:
http://img191.imageshack.us/img191/7527/capturedcran20111128180.png
В частности, в нижней части триангулированного корпуса вы можете видеть, что триангуляция находится в контуре AND вне контура, потому что OpenCV триангулирует выпуклый корпус. Я хотел бы найти способ триангуляции самого контура.
Я нашел некоторые идеи по добавлению точек Штейнера в сам контур, но не могу найти, с чего начать с OpenCV.
Моя идея состояла в том, чтобы:
проверить, находится ли треугольник в И вне контура;если истина: получить точку пересечения;и добавьте его в cvSubdiv2D.Я прав с этим?
Спасибо за ваше терпение и ваши ответы!