2009-11-01 11 views
8

Esto no es realmente "OCR", ya que no reconoce los caracteres, pero es la misma idea aplicada a las curvas. ¿Alguien sabe de una biblioteca de procesamiento de imágenes o un algoritmo establecido para recuperar los valores de una imagen de trazado (ráster)? Por ejemplo, en este gráfico, es difícil para mí leer valores exactos con los ojos porque no hay tales espacios entre las líneas de división:Digitalización de trazado: raspado de los valores de muestra de una imagen de un gráfico

alt text http://i35.tinypic.com/316airl.jpg

puedo utilizar un borde recto o lo que sea, pero todavía va a ser de error -propenso. Sería genial si hubiera un software que solo pudiera tomar una captura de pantalla de cualquier gráfico antiguo y convertirlo automáticamente en una tabla de valores o una función que pudiera ser consultada.

¿Parece que se llama "reconocimiento de curva"? También podría usarse para extraer datos de las curvas en artículos científicos para los cuales no se publican los datos subyacentes.

Y está bien tener alguna orientación humana. No hay ninguna razón para que un OCR no pueda leer el "100" y hacer coincidirlo con la línea, por ejemplo, pero está bien que un humano dé a las líneas valores numéricos después de que la máquina haya extraído la ruta de la curva relativa a las líneas de la cuadrícula. Lo que más me interesa es la función de trazar la curva con respecto a la cuadrícula, incluso si la cuadrícula está inclinada, girada o warped in a non-affine way.

Actualización:

Ahora hay un artículo de Wikipedia llamada Converting scanned graphs to data con un montón de software en los enlaces. También algunos software on alternativeto.net. Supongo que la teoría pertenece a http://dsp.stackexchange.com ahora, mientras que las soluciones de software pertenecen a http://superuser.com?

+0

He utilizado http://arohatgi.info/WebPlotDigitizer/ requiere alguna anotación manual del gráfico, pero en su caso creo que es la opción más fácil. –

+1

@ RasmusBååth: Sí, eso es lo que he estado usando. Sin embargo, esta es más una cuestión de programación. – endolith

Respuesta

5

Esto es extremadamente difícil y propenso a errores. (Hacemos este tipo de cosas mucho en química donde tratamos de analizar la química.) Depende críticamente de varios parámetros y condiciones.

  1. ¿La imagen es un mapa de bits (solo píxeles) o vectores (CEM, WMF, SVG, PS, PDF ...)? Los vectores son mucho mejores que los píxeles. Abordamos vectores (incluido PDF) pero no tocamos píxeles. Algunos de nuestros collbaorators intentarán usar píxeles, pero solo en documentos bastante recientes.
  2. Si está atascado con píxeles, ¿son todas sus imágenes todas de la misma fuente? Si es así, tienes una pequeña posibilidad de extraer información de fuentes. Me temo que tu imagen es tan pobre que requeriría mucho trabajo. Sin embargo, si puede calcular la fuente, tiene la posibilidad de extraer texto y números si todos los documentos son de la misma fuente. Puede usar heurística (reglas tales como dónde pueden estar los números) o aprendizaje automático (una lista de características en las que los métodos pueden ser entrenados).
  3. Su imagen parece haber sido escaneada (ya que los ejes están pixelados). Eso lo hace todavía peor. Lo que parece una línea recta para el ojo es horrible para una máquina. ¿Tu imagen está sesgada en la página? Puede que tengas que enderezarlo.
  4. Si tiene un modelo para las líneas y curvas, entonces puede tener un cambio de modelado de los parámetros esperados en la imagen. Pero no es trivial.

Lo siento ser pesimista. Si realmente desea la información, puede hacerlo con mucha inversión o colaboración con grupos que hacen este tipo de cosas.

+0

No creo que sea tan difícil como imaginas. ¿Qué experiencia específica tienes con esto? No entiendo qué tiene que ver el raspado de gráficos con "análisis de química". – endolith

+0

Y sí, me refiero a gráficos rasterizados, no a imágenes vectoriales. – endolith

+0

@endolith, el gráfico anterior bien podría aparecer en un documento de química. Hemos analizado (y publicado en revistas revisadas por pares) sobre cómo extraer información de artículos científicos. Éstos son principalmente en química, pero contienen gráficos que muestran todos los aspectos de este problema. "No creo que sea tan difícil como me imagino". Si realmente ha logrado escribir un software que puede extraer información (sin ayuda humana) de la imagen mostrada, sorprenderá a mucha gente. –

1

No conozco ningún software que haga lo que me pide, pero si puede obtener algunos puntos, puede usar algún tipo de regresión para encontrar la mejor función que se ajuste a esos puntos.Este gráfico particular parece una función exponencial. Entonces querrás encontrar una calculadora de regresión exponencial.

+0

Por favor díganos qué "calculadora de regresión" puede leer datos de una imagen? –

3

en Google de "software de reconocimiento de curva" sugiere http://www.curveunscan.com/

+0

Hmmm ... Dice "algoritmo de reconocimiento de curva", pero también habla de elegir los puntos a mano: http://www.curveunscan.com/features.htm – endolith

+0

Funciona, pero requiere mucha mano. de puntos, rastrea mal las curvas y se bloquea a menudo. :/ – endolith

+0

Aquí hay otra solución de software, con alguna capacidad de seguimiento de curvas: http://digitizer.sourceforge.net/ – endolith

2

También hay potrace que se relaciona, y que la página a su vez menciona otras alternativas

1

Uso im2graph para convertir imágenes gráficas a datos, es decir, números. im2graph es gratuito y está disponible para Linux y Windows. Muy suave y requiere muy poco esfuerzo de su parte para generar resultados. Ver http://www.im2graph.co.il

Cuestiones relacionadas