Wolfram Language

Reconhecimento de texto para leitura de gráficos rasterizados

Geralmente, a visualização de um gráfico é salva como uma imagem rasterizada. A principal fonte desses gráficos são scanners ou documentos antigos. Para reconstruir um gráfico de resolução mais alta, deve-se converter o gráfico rasterizado em gráficos vetoriais. Este exemplo mostra como usar o processamento de imagem e o reconhecimento de texto para extrair os elementos de um gráfico, incluindo eixos, legenda de eixos e os intervalos de valores na direção horizontal e vertical.

Pegue uma imagem que contém um gráfico.

Reconheça todos as marcações e legendas e suas a localizações e armazene-os em uma associação.

Agora defina as funções de utilidade para selecionar legendas reconhecidas nas proximidades e agrupá-las com base em suas coordenadas x e y.

mostre o input completo da Wolfram Language

Isso nos permite agrupar os elementos reconhecidos em rótulos e marcações horizontais.

Descubra onde a gráfico está na imagem criando um retângulo usando as coordenadas mais altas dos eixos vertical e horizontal.

Destaque o gráfico na imagem.

Agora, vamos encontrar e analisar as marcações.

Usamos um pequeno utilitário para converter caracteres detectados como marcações em números e classificá-los.

mostre o input completo da Wolfram Language
mostre o input completo da Wolfram Language

Localize, reconheça e realce as legendas dos eixos.

Agora você está pronto para recriar o esqueleto do gráfico.

Na imagem original, a marca de 200 está um pouco deslocada do ponto zero no eixo horizontal. Se você descobrir quanto é o deslocamento, poderá replicá-lo no esqueleto do gráfico.

Primeiro, você precisa descobrir a que distância os marcadores horizontais estão colocados um do outro.

O cálculo da média das distâncias fornecerá a escala média de como os marcadores estão colocados.

Para calcular a escala com precisão, você precisa descobrir qual é a diferença média entre os valores que representam os marcadores horizontais.

A última coisa que você precisa descobrir é a distância do primeiro marcador horizontal do ponto de interseção dos eixos em pixels.

Finalmente, você pode encontrar o deslocamento necessário.

Agora, o gráfico terá a marcação 200 deslocada do ponto zero no eixo horizontal, como na imagem original.

mostre o input completo da Wolfram Language

Colocando tudo isso em uma função, você pode tentar reconhecer o esqueleto de outro gráfico.

Exemplos Relacionados

de en es fr ja ko zh