2012-06-26 14 views
5

Desidero selezionare automaticamente l'area della pagina da ritagliare in un secondo momento. Ho pensato che il rilevamento dei bordi potrebbe essere utile e utilizzato per rilevare i bordi dell'immagine. Ora ho questa immagine! ma non ho la chiara idea di selezionare l'area della pagina come un rettangolo. Qualcuno può suggerire un metodo o implementazione per questo problema? Quello che voglio veramente fare è selezionare l'area della pagina come segue. C'è qualche altro metodo per farlo? Ho anche visto il rilevamento dei confini nel libro di introduzione all'elaborazione delle immagini digitali usando MATLAB. Ma non mi è familiare. Posso usare quello per questo scopo?Ritaglia l'immagine dopo aver selezionato l'area utilizzando il rilevamento dei bordi in Android

+1

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

+0

Grazie. Controllerò. Conoscete l'implementazione di Java per quelle tecniche? Preferisco se posso evitare opencv o C++ per questo. – chAmi

+0

Sì, consultare [questo tutorial] (http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/android_binary_package.html#android-binary-package). Ma C++ sarà molto più veloce. – ArtemStorozhuk

risposta

0

Suppongo di avere un'immagine "Canny-ed". Ora è possibile utilizzare Imgproc.findCountours, per trovare e archiviare i bordi (per questo è necessario lo List<MatOfPoint>). Prima di usare findContours giocherei con Imgproc.dilate, che potrebbe aiutare a trovare i contorni ("ingrassa" le linee, quindi siamo sicuri che lo findContours non salterà il tuo obiettivo). Quindi è necessario utilizzare solo Imgproc.boudningRect per ottenere il ROI. Quindi ritaglia l'immagine utilizzando questa ROI.

Problemi correlati