Pergunta

A resposta aceite para a questão Biblioteca C ++ para reconhecimento de imagem: imagens que contenham palavras para string recomendado que você:

  1. Upsize / Downsize sua imagem de entrada para 300 DPI.

Como eu faria isso ... Eu estava sob a impressão de que DPI foi para monitores, não formatos de imagem.

Foi útil?

Solução

Eu acho que o termo mais preciso aqui é resampling . Você quer uma pixels de resolução alta o suficiente para suportar OCR preciso. Tamanho da fonte (por exemplo, em pontos ) é tipicamente medida em unidades de comprimento, não píxeis. Desde 72 pontos = 1 polegada, precisamos 300/72 pixels-por-ponto para uma resolução de 300 dpi ( "pixels por polegada"). Isso significa que uma fonte típica de 12 pontos tem uma altura (ou, mais precisamente, a base de linha-a-linha de base de distância no texto espaçamento simples) de 50 pixels.

Idealmente, os documentos de origem devem ser verificados em uma resolução adequada para um determinado tamanho de fonte, para que a fonte na imagem é de cerca de 50 pixels de altura. Se a resolução for muito alta / baixa, você pode facilmente resample a imagem usando um programa de gráficos (por exemplo GIMP ) . Você também pode fazer isso por meio de programação através de uma biblioteca de gráficos, tais como ImageMagick que tem interfaces para idiomas muitos de programação.

Outras dicas

DPI faz sentido sempre que você está relacionando uma imagem em pixels para um dispositivo físico com um tamanho de imagem. No caso de OCR, que normalmente significa a resolução da digitalização, ou seja, quantos pixels você receberá para cada polegada de sua digitalização. Uma fonte de 12 pontos é para ser impresso em 12/72 polegadas por linha, e um carácter de letras maiúsculas pode encher cerca de 80% do que; Assim, seria de cerca de 40 pixels de altura quando digitalizada a 300 DPI.

Muitos formatos de imagem têm uma DPI gravada neles. Se a imagem foi digitalizada, esta deve ser a definição exata do scanner. Se ele veio de uma câmera digital, ele sempre diz 72 DPI, que é um valor padrão estipulado pela especificação EXIF; isso é porque a câmera não pode saber o tamanho original da imagem. Quando você cria uma imagem com um programa de imagem, você pode ter a oportunidade de definir o DPI para qualquer valor arbitrário. Esta é uma conveniência para você especificar como deseja que a imagem final a ser utilizado, e não tem qualquer influência sobre os detalhes contidos na imagem.

Aqui está uma pergunta anterior que pede os detalhes de redimensionar uma imagem: Como eu faço escalonamento de alta qualidade de uma imagem?

software

OCR é normalmente projetado para trabalhar com tamanhos "normais" de fonte. De um ponto de imagem de vista, isso significa que ele vai estar à procura de letras, talvez em torno de 30 a 100 pixels faixa de altura. Imagens de resolução muito maior produziria letras que aparecem muito grande para o software OCR para processar de forma eficiente. Da mesma forma, as imagens de resolução mais baixa não iria fornecer o suficiente pixels para o software para reconhecer as letras.

"Como eu faria isso ... Eu estava sob a impressão de que dpi foi para monitores, não formatos de imagem."

DPI significa pontos por polegada. O que isso tem a ver com monitores? Bem, temos um pixel feito de três subpixels RGB. Quanto maior o DPI, mais detalhes você enfiar esse espaço.

DPI é uma medida útil para monitores e impressões, mas nada de útil ... na verdade, nada para os próprios formatos de imagem.

A razão para DPI ser marcado dentro de alguns formatos é instruir os dispositivos para exibição nessa resolução, mas pelo que eu entendo, praticamente todos ignorar a instrução e faz o seu melhor para otimizar a imagem para uma saída particular.

Você pode alterar 72 dpi a 1 dpi ou 6000 dpi em formato de imagem e não vai fazer uma qualquer diferença em um monitor. "Upsize / downsize a 300 dpi" não faz sentido. não Resampling não mudar DPI quer. Experimentá-lo em Photoshop, desmarque a opção "Resample" ao alterar o DPI e você vai ver nenhuma diferença. Ele não vai ficar maior ou menor.

DPI é totalmente sem sentido para formatos de imagem, IMO.

Se seu objetivo é OCR, DPI faz sentido como o número de pontos em sua imagem para cada polegada no documento original digitalizado. Se a sua dpi é muito baixo, a informação é ido para sempre, e interpolação mesmo bicubic não vai para um trabalho brilhante recuperá-lo. Se a sua dpi é muito alto, é fácil jogar fora pedaços.

Para fazer o trabalho; Eu sou um grande fã do netpbm / pbmplus conjunto de ferramentas; a ferramenta para começar é pnmscale, embora se você tem um bitmap que você queira considerar ferramentas relacionadas, como pbmreduce.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top