Qual é a melhor maneira de detectar os cantos de uma fatura / recibo / folha de papel em uma foto? Deve ser usado para correção de perspectiva subsequente, antes do OCR.
Minha abordagem atual tem sido:
RGB> Cinza> Canny Edge Detection with thresholding> Dilate (1)> Remove small objects (6)> Clear boarder objects> pick grande blog based on Convex Area. > [detecção de canto - não implementado]
Não posso deixar de pensar que deve haver uma abordagem "inteligente" / estatística mais robusta para lidar com esse tipo de segmentação. Não tenho muitos exemplos de treinamento, mas provavelmente poderia obter 100 imagens juntas.
Contexto mais amplo:
Estou usando matlab para prototipar e planejando implementar o sistema em OpenCV e Tesserect-OCR. Este é o primeiro de uma série de problemas de processamento de imagem que preciso resolver para este aplicativo específico. Portanto, estou procurando lançar minha própria solução e me familiarizar novamente com algoritmos de processamento de imagem.
Aqui estão alguns exemplos de imagem que eu gostaria que o algoritmo manipulasse: Se você gostaria de aceitar o desafio, as imagens grandes estão em http://madteckhead.com/tmp
(fonte: madteckhead.com )
(fonte: madteckhead.com )
(fonte: madteckhead.com )
(fonte: madteckhead.com )
Na melhor das hipóteses, isso dá:
(fonte: madteckhead.com )
(fonte: madteckhead.com )
(fonte: madteckhead.com )
No entanto, ele falha facilmente em outros casos:
(fonte: madteckhead.com )
(fonte: madteckhead.com )
(fonte: madteckhead.com )
Agradecemos antecipadamente por todas as ótimas ideias! Eu amo então!
EDIT: Progresso da Transformação de Hough
P: Qual algoritmo agruparia as linhas de altura para encontrar cantos? Seguindo os conselhos das respostas, consegui usar a transformada de Hough, escolher as linhas e filtrá-las. Minha abordagem atual é bastante rude. Presumi que a fatura sempre estará menos de 15 graus fora do alinhamento com a imagem. Acabo com resultados razoáveis para as linhas, se for esse o caso (veja abaixo). Mas não estou totalmente certo de um algoritmo adequado para agrupar as linhas (ou votar) para extrapolar para os cantos. As linhas de Hough não são contínuas. E nas imagens com ruído, pode haver linhas paralelas, portanto, alguma forma ou distância das métricas de origem da linha são necessárias. Alguma ideia?
(fonte: madteckhead.com )