He estado tratando de encontrar la mejor manera de detectar los 4 cuadrados negros en el papel y usarlos para aislar el papel con su propia imagen.¿Cómo puedo detectar marcadores de registro en papel usando OpenCV?
6
A
Respuesta
6
Parece que en la imagen sólo hay 4 cuadros negros así que lo que tenemos que hacer es: Imagen
- Convertir a grises umbral
- Do
- Encuentra contornos negros (antes de hacer esto en OpenCV tiene que invertir su imagen, porque por defecto OpenCV encuentra contornos blancos)
- Pase por estos contornos y encuentre el límite g rectángulo.
hacer el cheque:
A) área del rectángulo es más grande que alguna constante (en mi solución fue)
B) del rectángulo de anchura/altura es cerca de 1.0 (en mi soultion era gama [0,9, 1,1])
el código:
Mat img = imread("test.jpg"), gray;
vector<Vec4i> hierarchy;
vector<vector<Point2i> > contours;
cvtColor(img, gray, CV_BGR2GRAY);
threshold(gray, gray, 100, 255, THRESH_BINARY);
bitwise_not(gray, gray);
findContours(gray, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
for(size_t i=0; i<contours.size(); i++)
{
Rect rect = boundingRect(contours[i]);
double k = (rect.height+0.0)/rect.width;
if (0.9<k && k<1.1 && rect.area()>100)
{
drawContours(img, contours, i, Scalar(0,0,255));
}
}
imshow("result", img);
waitKey();
Resultado:
Lea también this SO discussion - que no es necesario que 4 plazas para detectar papel.
Cuestiones relacionadas
- 1. Usando OpenCV para detectar botones de la ropa en un pedazo de papel
- 2. cómo detectar objetos conocidos en OpenCV?
- 3. OPENCV detectar luces parpadeantes
- 4. OpenCV detectar esquinas
- 5. OpenCV detectar contornos intersección
- 6. detectar espacio de color con openCV
- 7. Imprimir en papel continuo usando C#
- 8. android corner tracking usando opencv
- 9. ¿Cómo puedo detectar IE8, usando JQuery?
- 10. ¿Cómo puedo detectar caras usando Ruby?
- 11. ¿Cómo puedo detectar bostezar usando Abrir CV
- 12. OpenCV: Usando Hough Circle Transformation para detectar iris
- 13. Detección de logotipos usando OpenCV
- 14. HOG para "detectar objetos" opencv
- 15. Cargando una imagen usando OpenCV en Android
- 16. ¿Cómo puedo ecualizar el contraste y el brillo de las imágenes usando opencv?
- 17. Detección de manos usando OpenCV
- 18. ¿Cómo puedo detectar .NET 3.5 en WiX?
- 19. cómo detectar la región de gran cantidad de píxeles blancos usando opencv?
- 20. OpenCV: detectar luces parpadeantes en una alimentación de video
- 21. ANDROID - detección de color usando openCV - ¿cómo?
- 22. Flujo óptico usando opencv
- 23. ¿Cómo puedo detectar una actualización de página usando jquery?
- 24. cómo detectar centro de un círculo borroso con OpenCV
- 25. Usando OpenCV desde F #
- 26. ¿Cómo se definen los marcadores para la cuenca hidrográfica en OpenCV?
- 27. Google Maps infoWindow solo cargando el último registro en marcadores
- 28. cómo detectar flash usando SWFObject
- 29. Detección de área brillante rectangular en una imagen usando OpenCv
- 30. Eliminación de píxeles ruidosos usando opencv
Bienvenido a StackOverflow. ¿Qué has intentado hasta ahora que no está funcionando para ti? ¿Has visto [esta pregunta] (http://stackoverflow.com/q/11424002/62576) para ver si ayuda? Por favor, muestre un poco de esfuerzo para resolverlo usted mismo (aparte de publicar una imagen), y alguien aquí probablemente pueda ayudar. –