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

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

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

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

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

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

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

Intereting Posts
Android Crop загружает неправильное изображение Центрировать вертикальное изображение текста в EditText Приложение Android Wear не устанавливается через трубку Возможно ли добавление / удаление элементов из списка ListView с помощью CursorAdapter? Android Studio – Проблема в build.gradle Неперехваченная ошибка перевода ExecutionException OutOfMemory Как сделать элементы gui как кнопку на каждом устройстве похожим на родной gui в android? Android NDK Exception failed: dlopen failed: невозможно найти символ «_ZN7Tangram11setPositionEdd», на который ссылается «libtangram.so», Установка Android Studio на Windows 7 не удалась, не найден JDK Предложения клавиатуры приводят к тому, что часть сообщения Android EditText.setError () не отображается Как использовать пользовательский шрифт в телефонном разрыве? Запустить Android OpenGL в фоновом режиме, как рендеринг ресурсов для приложения? Android BroadcastReceiver не может получать какие-либо события трансляции Почему предупреждение: невозможно найти дополнительную библиотеку: org.apache.http.legacy происходит? Как создать элементы списка, получить DragEvents после прокрутки Как добавить флажки в Android