Este blog, que surgiu no final do ano passado como uma ferramenta informal da nossa equipe para divulgar nosso trabalho dentro da Opus Software, esta mudando. Ele passa a ser um blog pessoal meu sobre assuntos tecnicos de meu interesse.A Opus Software conta agora com um blog oficial que representa a visao da empresa sobre diversos assuntos dentro de nossa area de atuacao:http://blog.opus-software.com.br/Note que o proprio nome do blog foi alterado para Gustavo Basilio Tech Blog de maneira a concretizar esta mudanca. As opinioes neste blog representam apenas minha visao pessoal ou a de outros autores que venham a contribuir. Processamento de imagens e uma atividade inerentemente complexa, apesar dos avancos surpreendentes em capacidade computacional, no campo do reconhecimento de padroes nao temos ainda nada que se aproxime da capacidade do cerebro, a parte interessante e que na maioria dos casos nao precisamos.Um dos projetos do programa de estagio desenvolvido na empresa, tem como objetivo o reconhecimento de imagens digitalizadas de documentos (RG, CPF, CNH e etc), um dos requisitos estabelece que o software receba uma unica imagem digitalizada contendo multiplos documentos. Entao vamos ao primeiro problema, como segmentar as imagens?Ao observarmos uma imagem digitalizada de multiplos documentos, conseguimos visualmente segmentar a imagem entre fundo e imagens dos documentos individuais. Uma das caracteristicas que observamos para realizar esse raciocinio e a variacao na intensidade da imagem ao longo de uma determinada direcao, isto e, a diferenca de contraste entre o fundo uniforme e as imagens dos documentos.Em imagens coloridas o numero de cores e imenso, considerando uma imagem colorida no formato RGB 24 bits temos cerca de 16 milhoes de cores, essa complexidade nao traz nenhum ganho significativo ao nosso problema. Dessa forma podemos simplifica-lo realizando o mapeamento do espaco de cor RGB para uma representacao em tons de cinza restringindo assim o numero de cores a 256 diferentes tons.O ideal e que o fundo de nossa imagem de entrada seja uniforme, pense em uma folha de sulfite branca, no entanto, uma imagem digitalizada apresenta distorcoes inerentes ao processo de obtencao, fazendo-se necessario a remocao desse ruido para conseguirmos melhores resultados. Para o tipo de ruido em nosso problema a aplicacao de um filtro Gaussiano e suficiente. De forma simplificada, um filtro Gaussiano atribui a cada pixel na imagem o valor da media ponderada (por uma funcao Gaussiana) de seus vizinhos.Apesar de ser valido escrever um programa a partir do zero, em desenvolvimento profissional o comum e a reutilizacao de codigo, isso se traduz na integracao de trechos de codigo, bibliotecas ou ate mesmo aplicacoes completas ao programa em desenvolvimento. Em nosso projeto utilizamos a aplicacao de processamento de imagens ImageJ que expoe sua biblioteca para integracao em outras aplicacoes.Voltando ao problema em questao, com a sequencia de operacoes descritas, reduzimos o problema de segmentar uma imagem colorida de multiplos documentos ao de detectar o contorno de regioes com intensidade de cinza diferente daquela que corresponde a cor de fundo.Voltando ao problema em questao, com a sequencia de operacoes descritas, reduzimos o problema de segmentar uma imagem colorida de multiplos documentos ao