¿Hay alguna función de OpenCV como "cvHoughCircles()" que pueda usar para la programación de detección cuadrada para el programa de detección de círculo que es CvSeq * circles = cvHoughCircles() pero no pude encontrar para la detección de cuadrados.¿Hay alguna función opencv como "cvHoughCircles()" para la detección cuadrada?
Respuesta
usted no necesita ninguna función específica para esa. OpenCV viene con una muestra de detección cuadrada (que realmente detecta rectángulos, puede agregar la restricción de que todos los lados deben tener la misma longitud para obtener el cuadrado).
Comprobar este enlace: squares.cpp
Hay una buena explicación de cómo funciona el código en este SOF: How to identify square or rectangle with variable lengths and width by using javacv?
A continuación se muestra el resultado que se obtiene al aplicar ese código.
bt cuando intento ejecutar el programa, que muestra 2 errores debido a ** # include "opencv2/core/core.hpp" ** y ** # incluye "opencv2/imgproc/imgproc.hpp" ** ///// Error- \t error fatal C1083: No se puede abrir el archivo include: 'opencv2/core/core.hpp': No existe ese archivo o directorio. ¿Podría decirme la manera de resolver este error? – Thar1988
Lo siento No estoy usando C++. Puede formularse como una pregunta separada, diciendo que su nueva pregunta es la continuación de esta pregunta. –
Debería cambiar esos incluye para que su ruta de acceso al lugar donde instaló esos archivos. Debe ser una ruta relativa, no una ruta completa. –
No hay función opencv para encontrar cuadrados directamente.
Pero puede usar la función houghLines, que detecta líneas, y encuentra intersecciones entre líneas con ángulos de 90 grados.
Para medir ángulos entre líneas que puedo proporcionar un fragmento de código Java:
// returns cosine of angle between line segments 0 to 1, and 0 to 2.
// pt0 is the vertex/intersection
// angle of 90 degrees will have a cosine == 0
public static final double angleCosine(Point pt1, Point pt0, Point pt2) {
double dx1 = pt1.x - pt0.x;
double dy1 = pt1.y - pt0.y;
double dx2 = pt2.x - pt0.x;
double dy2 = pt2.y - pt0.y;
return (dx1 * dx2 + dy1 * dy2)/Math.sqrt((dx1 * dx1 + dy1 * dy1) * (dx2 * dx2 + dy2 * dy2) + 1e-10);
}
Docs sobre houghLines:
http://docs.opencv.org/modules/imgproc/doc/feature_detection.html?highlight=houghlines#houghlines
- 1. Detección de curvas en OpenCV
- 2. hay alguna función como string.isnullorempty() en javascript
- 3. ¿Hay alguna función como contiene desde Java para PHP?
- 4. ¿Detección manual de OpenCV?
- 5. Detección de color opencv
- 6. ¿Hay alguna manera de deshabilitar la detección del navegador .NET?
- 7. Detección de Objetos 3D-Opencv
- 8. detección de objetos android opencv
- 9. Detección de elipse con OpenCV
- 10. Detección de manos usando OpenCV
- 11. Detección de logotipos usando OpenCV
- 12. ¿Hay alguna alternativa para la función date_parse para php 5.1. *?
- 13. Detección de iris con opencv
- 14. ¿Hay alguna biblioteca ActiveResource como para Java?
- 15. Detección de rostros con OpenCV para imágenes no frontales
- 16. ¿Hay alguna herramienta como doxygen para XSLT?
- 17. ¿Hay alguna herramienta como mecanizar para Android?
- 18. ¿Hay una función como isdate() para datetime2?
- 19. ¿hay alguna función como php explotar en jquery?
- 20. Detección de movimiento Opencv con seguimiento
- 21. OPENCV vs GIMP, detección de bordes falla en OPENCV
- 22. ANDROID - detección de color usando openCV - ¿cómo?
- 23. Transformación de Hough para detección de iris en OpenCV
- 24. Detección de objetos OpenCV - Punto central
- 25. Detección de rostro lento en OpenCV?
- 26. detección de formas - aproximación del contorno con OpenCV
- 27. Detección de línea horizontal con OpenCV
- 28. Raíz cuadrada para Bigint en F #
- 29. ¿Hay bibliotecas de clasificación OpenCV gratuitas?
- 30. ¿Hay alguna manera de integrar OpenCV con PHP?
Teniendo en cuenta que la detección de plazas es sustancialmente más fácil que la detección de círculos, no me sorprendería que squarefinding se deja como ejercicio para el codificador. Básicamente, tiene que encontrar segmentos colineales conectados largos que se cortan aproximadamente en ángulos rectos, y puede generar esos segmentos utilizando un poco de filtrado y un detector de bordes. La mayoría de las herramientas que necesita para hacer eso ya deberían estar en OpenCV. – Rook
Y para hacer eso, usará Hough transform para líneas, que también se implementa en OpenCV;) – CTZStef
Consulte esto: http://stackoverflow.com/questions/10533233/opencv-c-obj-c-advanced-square- detección Hay tres o cuatro enfoques que puedes probar en ese enlace. Disfruta :) – ChathuraSam