Coordenadas de texto enmarcado en una imagen
Me gustaría obtener las coordenadas del texto enmarcado en una imagen. Los párrafos tienen delgados bordes negros. El resto de la imagen contiene párrafos y bocetos habituales.
Aquí hay un ejemplo:

¿Tiene alguna idea de qué tipo de algoritmos debería usar en Python con una biblioteca de imágenes para lograr esto? Gracias.
Respuestas
Algunas ideas para detectar un texto enmarcado que se reduce en gran medida a buscar cuadros / rectángulos de tamaño considerable:
encuentre contornos con OpenCV, analice formas usando el algoritmo de aproximación de polígonos (también conocido como algoritmo Ramer-Douglas-Peucker ). Además, puede verificar la relación de aspecto del cuadro delimitador para asegurarse de que la forma sea un rectángulo, así como verificar el ancho de la página, ya que parece ser una métrica conocida en su caso. PyImageSearch hizo este increíble artículo:cv2.approxPolyDP()
- Detección de forma OpenCV
en una pregunta relacionada , también hay una sugerencia de mirar en Hough Lines para detectar una línea horizontal, dando un giro y detectando líneas verticales de la misma manera. No estoy 100% seguro de cuán confiable sería este enfoque.
Una vez que encuentre los marcos de las cajas, el siguiente paso sería verificar si hay algún texto dentro de ellos. La detección de texto es un problema más amplio en general y hay muchas formas de hacerlo, aquí hay algunos ejemplos:
aplicar detector de texto EAST
PixelLink
tesseract (por ejemplo, via
pytesseract
) pero no estoy seguro si esto no tendría demasiados falsos positivossi se trata de un caso más simple de cajas que se vacía o no, podrías comprobar los valores medios de píxel en el interior - por ejemplo con cv2.countNonZero(). Ejemplos:
- Cómo identificar un rectángulo vacío usando OpenCV
- Cuente los píxeles negros usando OpenCV
Referencias adicionales:
- ideas sobre la detección de cuadrángulos / rectángulos mediante redes neuronales convolucionales