Coordenadas de texto emoldurado em uma imagem
Gostaria de obter as coordenadas do texto em moldura de uma imagem. Os parágrafos têm bordas pretas finas. O resto da imagem contém parágrafos e esboços usuais.
Aqui está um exemplo:

Você tem alguma ideia de que tipo de algoritmos devo usar em Python com uma biblioteca de imagens para fazer isso? Obrigado.
Respostas
Algumas ideias para detectar um texto em molduras que se resumem principalmente a caixas de pesquisa / retângulos de tamanho substancial:
encontre contornos com OpenCV, analise formas usando algoritmo de aproximação de polígono (também conhecido como algoritmo Ramer – Douglas – Peucker ). Além disso, você pode verificar a proporção da caixa delimitadora para certificar-se de que a forma é um retângulo, bem como verificar a largura da página, pois esta parece ser uma métrica conhecida no seu caso. PyImageSearch fez este artigo incrível:cv2.approxPolyDP()
- Detecção de forma OpenCV
em uma questão relacionada , também há uma sugestão de olhar em Hough Lines para detectar uma linha horizontal, dando uma volta para detectar linhas verticais da mesma forma. Não tenho 100% de certeza de quão confiável essa abordagem seria.
Depois de encontrar os quadros de caixa, o próximo passo seria verificar se há algum texto dentro deles. A detecção de texto é um problema mais amplo em geral e há muitas maneiras de fazer isso. Aqui estão alguns exemplos:
aplicar detector de texto EAST
PixelLink
tesseract (por exemplo, via
pytesseract
), mas não tenho certeza se isso não teria muitos falsos positivosse for um caso mais simples de caixas estarem vazias ou não, você pode verificar os valores médios de pixel dentro - por exemplo, com cv2.countNonZero(). Exemplos:
- Como identificar retângulo vazio usando OpenCV
- Conte os pixels pretos usando OpenCV
Referências adicionais:
- ideias sobre detecção de quadrângulo / retângulo usando redes neurais convolucionais