Detección de elipse con OpenCV
Me gustaría detectar elipses con OpenCV para Android, utilizando el Tutorial 2-Basic incluido con el paquete OpenCV 2.4.1 como punto de partida. Tenga en cuenta que mi elipse sería una perfecta-photoshop uno.
Por lo que entiendo, el uso de "HoughCircles" sólo encontrará círculos perfectos (o así), dejando así elipses.
- Ajuste automático de brillo, contraste y nitidez de una imagen de mapa de bits
- Cómo desenfocar una parte de la imagen en Android?
- ¿Cómo identificar imágenes similares a pesar de haber sido recortadas?
- Reconocimiento y seguimiento de objetos en movimiento más rápido en Android
- Cómo devolver una imagen de opencv y mostrar en código androide java?
Cualquier ayuda sería muy apreciada ya que soy un principiante total en OpenCV
Esto es lo que he intentado hasta ahora
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;
Si piensa que cualquier información más podría ser útil, por favor hágamelo saber.
- Android Asynctask para procesar tramas de video en vivo
- ¿Podemos utilizar la clase EffectFactory para versiones inferiores
- Croping la imagen en android usando opencv
- Cómo cambiar el color de fondo de mapa de bits a transparente y de fondo no debe arrastrar?
- Recortar imagen por área de polígono
- ¿Es posible cortar un mapa de bits a piezas pequeñas sin cargar toda la cosa en la memoria?
- ¿Cómo puedo trabajar con Android EffectFactory Class?
- OpenCV - Java: función inRange
Una posible solución a su problema es similar a este hilo Detección de monedas (y elipses en forma) en una imagen .
Usted debe echar un vistazo a la función de un opencv fitEllipse .
Los parámetros utilizados en HoughCircles
desempeñan un papel fundamental. HoughCircles
detectará no sólo círculos perfectos, sino también casi perfectos (elipses). Le sugiero que compruebe estos ejemplos:
- Cómo detectar círculos (monedas) en una foto
- Detección simple de objetos con OpenCV
- Detección de puntos de OpenCV
- Remodelación de la moneda ruidosa en forma de círculo
Y esta respuesta tiene una colección decente de referencias.
Si ya tiene una idea de los tamaños de las elipses que está buscando, pruebe los pasos siguientes:
- Encuentra Canny bordes en la imagen
- Utilice una ventana deslizante, cuyo tamaño es la longitud máxima del eje principal de las elipses que está buscando.
- Dentro de la ventana, recopile todos los píxeles del borde, elija 6 píxeles al azar y utilice los mínimos cuadrados lineales para ajustar una elipse en la forma general .
- Repita el paso anterior en un procedimiento similar a RANSAC.
- Si hay suficientes inliers, tiene una elipse.