Intereting Posts

Как извлечь простые геометрические формы из контуров в opencv

У меня есть Mat contours и я аппроксимировал каждый contour с approxPolyDP . Теперь я хочу обнаружить формы, такие как прямоугольник, треугольник, круг. И, например, перерисовать их другим цветом или использовать canvas и т. Д.

Есть ли способ использовать контуры? Как я могу получить доступ к точкам в Mat contours и упростить их немного дальше (удаление деформаций или если два значимых момента настолько близки друг к другу, что я могу безопасно удалить один из них)?

Я развиваюсь на Java (Android), поэтому не каждый метод / тип C / C ++ доступен мне (или JNI-вызов будет пустой тратой).

Контуры возвращаются как векторные контуры. Вы можете легко получить к ним доступ на C ++, выполнив что-то вроде:

 vector > contours; findContours(..,contours,...); contours.at(0).at(0) //first point of first contour 

Если вы обращаетесь к ним с помощью Mat, вам нужно будет проверить, какая компоновка производится. Это должно быть очень легко, хотя, хотя и сказал, что JNI и android opencv – это боль.