2012-06-26 25 views
5

Quiero seleccionar automáticamente el área de la página para recortarla más tarde. Pensé que la detección de bordes podría ser útil y usé la detección de bordes astutos para encontrar los bordes de la imagen. ¡Ahora tengo esta imagen! pero no tengo una idea clara para seleccionar el área de la página como un rectángulo. ¿Alguien puede sugerir un método o implementación para este problema? Lo que realmente quiero hacer es seleccionar el área de la página de la siguiente manera. ¿Hay algún otro método para hacer esto? También he visto la detección de límites en el libro de introducción al procesamiento digital de imágenes usando matlab. Pero no estoy familiarizado con eso. ¿Puedo usar eso para este propósito?Recortar la imagen después de seleccionar el área usando la detección de bordes en android

+1

duplicado: http://stackoverflow.com/questions/8667818/opencv-c-obj-c-detecting-a-sheet-of-paper-square-detection/ – ArtemStorozhuk

+0

Gracias. Lo revisaré. ¿Conoces la implementación de Java para esas técnicas? Prefiero si puedo evitar OpenCV o C++ para esto. – chAmi

+0

Sí, consulte [este tutorial] (http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/android_binary_package.html#android-binary-package). Pero C++ será mucho más rápido. – ArtemStorozhuk

Respuesta

0

Supongo que tiene una imagen "Canny-ed". Ahora puede usar Imgproc.findCountours, para encontrar y almacenar bordes (necesita List<MatOfPoint> para eso). Antes de usar findContours, jugaría con Imgproc.dilate, lo que podría ayudar a encontrar contornos ("engorda" las líneas por lo que estamos seguros de que findContours no perderá su objetivo). Entonces solo necesita usar Imgproc.boudningRect para obtener su ROI. Luego solo recorta la imagen usando este ROI.

Cuestiones relacionadas