Eu tento detectar retângulos em imagens. O fundo das imagens é de uma cor (na maioria das vezes). Eu tentei dois métodos para obter uma imagem binária (1 = fundo, 0 = bordas), para fazer uma transformação Hough mais tarde ...
Filtro Sobel ou Canny
Imagem suave A, Criar imagem de diferença A - gauss, Criar imagem binária com limite (Criar Histograma, a posição mais alta deve estar em segundo plano ...)
O resultado é uma imagem binária com bordas. Agora, não sei exatamente qual método funciona melhor para uma variedade de imagens diferentes. Alguma ideia?
image-processing
Martin Thompson
fonte
fonte
Respostas:
Certa vez, escrevi um aplicativo para detecção de retângulos. Utilizou a detecção de borda de Sobel e a transformação de linha Hough.
Em vez de procurar picos únicos na imagem Hough (linhas), o programa pesquisou 4 picos com distância de 90 graus entre eles.
Para cada coluna na imagem Hough (correspondente a algum ângulo), outras três colunas foram pesquisadas para o máximo local. Quando o pico satifativo foi encontrado em cada uma das quatro colunas, o retângulo foi detectado.
O programa construiu o retângulo e fez verificações adicionais quanto à consistência das cores dentro e fora do retângulo para discriminar falsos positivos. O programa era para detectar a colocação de papel em folhas de papel digitalizadas.
fonte
Você pode achar que o detector de borda Laplaciano de Gaussiano é uma escolha melhor. Ele deve fornecer contornos fechados com mais frequência do que o detector de borda Canny. Acredito que é isso que você deseja, pois seu próximo passo é aplicar a transformação Hough.
fonte
Pode ser útil para você, mas é tarde demais quando eu visito este site hoje
fonte
Se sua imagem estiver relativamente limpa, você terá retângulos óbvios sem muitas quebras, a alternativa para uma transformação de Hough é criar contornos e reduzi-los até formarem um contorno de 4 lados = seu retângulo.
Existem amostras opencv para fazer isso
fonte
Tutorial do Python para encontrar retângulos escritos do zero. Usa Canny e Hough Lines.
fonte