• Aucun résultat trouvé

NATURE des DEPENSES MONTANTS OBSERVATIONS

Dans le document Pièces jointes CEVU du 15 mars 2012 (Page 41-48)

Antes de proceder com a análise do reconhecimento, é preciso primeiro determinar se o documento digitalizado está rotacionado em relação ao eixo da escrita do documento original. A disposição do papel sobre a mesa do scanner pode estar sujeita a uma rotação, por ser este um processo manual na maioria dos casos. Já existem aparelhos digitalizadores que tratam grandes quantidades de documentos de forma automática, diminuindo a possibilidade de rotação nas imagens. Estes aparelhos, no entanto, não são adequados ao uso em documentos históricos face a sua importância (um dispositivo mecânico pode por falha rasgar, amassar, até mesmo destruir o documento) e falta de padronização (cada documento possui característica de espessura, dimensões, etc).

Para tratar problemas de rotação da imagem a transformada de Hough é o método mais utilizado. Com ela, o espaço de coordenadas cartesianas XY é convertido para um novo espaço, chamado espaço de Hough, onde cada pixel da imagem corresponde a um conjunto de retas. Se N retas, correspondendo a N pixels, se encontram em um ponto, estes N pixels estão alinhados na imagem. Assim, cada reta que pode passar por um dado pixel em uma imagem pode ser completamente descrita pela equação:

b X a

Y = . + (12)

Onde X e Y são as coordenadas do pixel na imagem, a é o grau de inclinação da reta e b é a ordenada onde a reta encontra o eixo Y. Esta mesma equação pode ser escrita de outra forma apenas trocando a ordem das variáveis:

Y x a

b=− . i+ (13)

que corresponde à equação da reta no plano (a, b) (o espaço de Hough). Considere um ponto (xi,

yi) e a equação geral

b x a

yi = . i + (14)

Existe um número infinito de retas que passam por (xi,yi), todas elas satisfazendo a equação 14 para valores diferentes de a e b. Tomando a expressão 13 do espaço de Hough para o ponto

) ,

(xi yi , temos, para o par fixo x e i y , apenas uma única reta no espaço de Hough. Tomemos, i

agora, outro ponto (xi,yi) da imagem. Novamente, infinitas retas passam por esse ponto no espaço XY e teremos uma reta no espaço de Hough associada a esse novo ponto. Essa nova reta interceptará (se xi ≠ ) a reta definida pelo ponto yi (xi,yi) em uma coordenada (a',b'), onde a' é a inclinação e b' é a interseção da reta contendo os dois pontos no plano XY. Assim, todos os

Apêndice

pontos contidos na reta Y = .aX +bterão retas no plano de Hough que se interceptarão em )

, (a'b' .

Ao espaço de Hough está associado um acumulador. O espaço é subdividido em células acumuladoras, limitadas por valores máximos e mínimos de a e b. A célula com coordenada

) ,

( ji possui um valor de acumulador A( ji, ), correspondendo à célula associada com a coordenada (ai,bj) no plano ( ba, ). Inicialmente, A( ji, ) é igual a zero, para todo i e j. Para cada ponto da imagem, fixamos o parâmetro a para cada célula e resolvemos a equação 2 para acharmos o valor de b. O valor encontrado é arredondado de modo a pertencer a uma célula no espaço. Por exemplo, se a escolha do valor ap resulta em um valor bq, o valor acumulado na célula ( qp, ) é incrementado de um, ou seja: A(p,q)= A(p,q)+1. Ao final, um valor K no acumulador ( ji, ) indica a presença de K pontos no plano XY pertencendo à reta y= .ai x+bj. O

número de subdivisões feitas no espaço de Hough, definindo as células, garante a confiabilidade da resposta do procedimento.

A equação 1, no entanto, apresenta seu maior problema à medida que a reta inclina-se na vertical (formando um ângulo de 90° com o eixo X). Nessa inclinação, o valor de b (ponto de encontro da reta com o eixo Y) tende a infinito. Este problema, no entanto, pode ser facilmente resolvido representando a equação da reta em outra forma, como a forma normal, por exemplo:

) sen( . ) cos( . w y w x r= + (15)

onde r é a distância perpendicular da origem do plano à reta e w é o ângulo desta linha perpendicular ao eixo X. O processo para uso de acumuladores continua o mesmo. O valor de w, no entanto, varia entre ±90°.

Através desta transformada, é possível determinar o grau de rotação da imagem digitalizada e, assim, proceder a uma rotação no sentido reverso. No caso de imagens textuais, a base de todas as letras que não têm prolongamentos abaixo da linha de escrita (letras que não sejam j, q, p, g ou y) devem ser colineares para que o texto não apresente nenhuma rotação. Assim, para se determinar o grau de rotação de uma imagem textual, cada símbolo é envolto por uma caixa (chamada glyph) e os pontos médios de cada uma dessas caixas é usado como base para a transformada de Hough. A determinação da caixa limitante do símbolo pode ser feita através da identificação de regiões conectadas na imagem. No caso de imagens monocromáticas, essas regiões são compostas por pixels pretos. Para imagens em tons de cinza, pode-se usar um valor de corte para definir as regiões de pixels pretos e brancos.

Podemos implementar a transformada de Hough no software MatLab [97] através da transformada de Radon [25][40][71]. Abaixo, podemos ver uma tal aplicação da transformada de Radon em uma simulação de uma rotação aplicada a um documento digitalizado. Suponha que foi inserida uma rotação de 10o no sentido anti-horário durante o processo de digitalização conforme pode ser visto na Figura 51. A transformada deve determinar este ângulo de rotação e, em seguida, uma rotação de mesmo valor e sentido contrário será imposta na imagem. Toda a aplicação a seguir foi feita com auxílio do software MatLab versão 6.0.

a)

b)

Figura 51.Exemplo de rotação de um documento. a) Documento original e b) Documento rotacionado em 10o

À imagem rotacionada foi aplicada a função abaixo, desenvolvida no MatLab, utilizando a transformada de Radon para determinar o ângulo de rotação :

function y=posrot(x)

% desenha o grafico da transformada de Radon para % determinar rotacao de uma imagem e localiza a posicao % onde o maximo ocorre

% posj indica o angulo de rotacao

% A entrada x deve ser uma imagem greyscale

BW=edge(x); theta=0:179;

[R,xp]=radon(double(BW),theta); imagesc(theta,xp,R); colormap(hot);

xlabel('\theta (degrees)');ylabel('x'''); colorbar; maxr = max(max(R)); tam=size(R); for i=1:tam(1) for j=1:tam(2) if (R(i,j)==maxr) posi=i; posj=j; end end end y=90-posj;

O resultado da transformada pode ser visto no gráfico da Figura 52.a e o resultado final da função foi o ângulo de rotação de –11o (erros de aproximação podem ter sido inseridos pelo programa), indicando uma rotação de 11o no sentido horário, como pode ser visto na Figura 52.b.

a)

b)

Figura 52.Aplicação da transformada de Radon para determinar o ângulo de rotação de uma imagem.

a) Resultado gráfico da transformada de Radon aplicada à imagem rotacionada da Figura 51.b. b) Imagem final rotacionada segundo o ângulo definido pela função

Código Fonte de Rede Neural para

Dans le document Pièces jointes CEVU du 15 mars 2012 (Page 41-48)

Documents relatifs