Определение эллипса с OpenCV
Я хотел бы обнаружить эллипсы с OpenCV для Android, используя учебник 2-Basic, включенный в пакет OpenCV 2.4.1 в качестве отправной точки. Обратите внимание, что мой эллипс будет идеальным-photoshop.
из того, что я понимаю, использование "HoughCircles" найдет только идеальные (или около того) круги, таким образом, оставляя эллипсы.
любая помощь была бы очень признательна, так как я новичок в OpenCV
Это то, что я пытался так далеко!--2-->
case Sample2NativeCamera.VIEW_MODE_CANNY: (ignore the Canny mode...)
capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);
Imgproc.HoughCircles(mGray, mCircles, Imgproc.CV_HOUGH_GRADIENT, 1, 20);
Log.d("Ellipse Points", " X " + mCircles.get(1,1)[0] + mCircles.get(1, 1)[1]);
break;
Если вы думаете, что больше информации может быть полезным, пожалуйста, дайте мне знать.
3 ответов
одно из возможных решений вашей проблемы похоже на эту тему обнаружение монет (и подходят эллипсы) на изображении .
вы должны взглянуть на функцию opencv fitEllipse.
параметры HoughCircles
играть основополагающую роль. HoughCircles
обнаружит не только идеальные, но и почти идеальные круги (эллипсы). Я предлагаю вам проверить эти примеры:
- как обнаружить круги (монеты) На фотографии
- простое обнаружение объектов с помощью OpenCV
- обнаружение цели точки OpenCV
- Переформование шумной монеты в круг форма
и ответ имеет приличную коллекцию ссылок.
Если у вас уже есть представление о размерах эллипсов, что вы ищете, то попробуйте следующее:
- найти осторожные края в изображении
- используйте раздвижное окно, размер которого является максимальной длиной главной оси эллипсов, которые вы ищете.
- в окне соберите все пиксели края, выберите 6 пикселей случайным образом и используйте линейные наименьшие квадраты чтобы вписать эллипс в общие форма.
- повторите вышеуказанный шаг в процедуре RANSAC like.
- Если есть достаточно inliers, у вас есть эллипс.