Pergunta

Eu consegui ter cada personagem armazenado em um bitmap e estou procurando uma maneira de determinar rapidamente qual personagem ela é.

Portanto, eu estou prestes a armazenar cada personagem possível em uma matriz de 1 e 0, e compará-los a uma matriz de bitmap a agarrado.

eu poderia fazer verificações simples como comparar quantos pixels pretos eu tenho, compare as dimensões e assim por diante, mas todas estas verificações são lentos (apenas um palpite ..).

Então, o que eu estou procurando é um método, que vai cocho cada pixel de baixo para cima, ou aleatoriamente que compara a matriz para um conjunto de matrizes e tipos unmatching para fora, até que só reste matriz. Mas como posso implementar isso?

Obrigado por sua ajuda.

Sven

Foi útil?

Solução

No OCR-mundo é muito raro que você topar com uma "combinação perfeita" entre um targetresource e seu recurso comparando originais.

Na verdade, é um enorme campo de ciência, mas aqui é uma tese agradável sobre o assunto que deve dar-lhe alguns conhecimentos básicos: http://www.discover.uottawa.ca/~qchen/my_papers/ master_thesis.pdf

Note que os algoritmos como estes são muito matemática pesada e agora forma otimizada para uma CPU x86 padrão.

Se você está procurando uma combinação perfeita (quero dizer, realmente perfeito, até byte-a-byte) e que pretende implementar este rápido e fácil, eu sugiro fazer um "ignorar as incompatibilidades óbvias rápido" - meio algoritmo - algo como:

1) tamanho Compare de arrays, se for diferente, não é o que você procura

2) comparar um valor hash de cada bitmaps

3) Compare cada bit / byte um por um e, logo que você ver uma diferença, não é o que você procura

4) Win, você encontrou um fósforo:)

Este é muito lento, dependendo do que você está tentando alcançar, mas fácil de implementar e que vai funcionar. Então corra bem para um protótipo de aplicação iguais. Como eu disse, OCR (e todas as outras formas de processamento de sinal digital) são um enorme campo de pesquisa, por isso não é algo que você pode esperar que as pessoas para ensinar-lhe em um forumpost rápida, infelizmente: (

Boa sorte

[EDIT] Olhando para o comentário em sua OQ, eu vou dizer indo para um hashtable datastructure / dicionário seria a mais rápida para você. Isso, ou uma árvore de busca binária .. Ambos muito dependente ONJ seu gerador de chaves de hash-:)

[EDIT2 (xD)] "É texto alias gerado por um computador. O fundo é diferente, mas o texto sempre tem a mesma cor." Consideravelmente informações importantes lá: P são do tamanho do texto / bitmaps sempre o mesmo também? Eu sugiro que ou implementar seu próprio algoritmo de hash onde descartar as cores de fundo predefinido, para que o valor hash só depende da cor do texto (e a forma desta demasiado OFC) ou simplesmente reescreve todos os pixels fundo em suas metas ser da mesma cor que o seu original (? ou apenas definir o fundo original com a de seus alvos Depende novamente na qual os dados que você está lutando com aqui - necessidade de mais informações :)).

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