Extraindo textos a partir de imagens

Realizando um atendimento (quem lê até pensa que sou médica rs) me deparei com um problema, tinha que converter um arquivo pdf de 29 páginas para texto, até aí blz, bastava usar um:

$ pdf2text

e pronto, textos a partir do pdf em instantes.

Mas por que facilitar se podemos complicar, né!
O resultado desse comando gerava infomações lixo que não batiam com o conteúdo do pdf.

Tentando de novo, só que agora com outro tipo de arquivo de saída:

$ pdf2html

e… BINGO!! Esse pdf foi gerado a partir de várias imagens organizadas e “linkadas” num index.html. Agora tenho um arquivo html e 29 arquivos PNG.
Mas não resolvi meu problema, cadê os textos?

Vamos à “mágica”!!

OCR é um acrónimo para o inglês Optical Character Recognition, uma tecnologia para reconhecer caracteres a partir de um arquivo de imagem, ou mapa de bits. Através do OCR é possível digitalizar uma folha de texto impresso e obter um arquivo de texto editável.
Fonte: Wikipédia

O que temos nos repositórios do OpenSuse que pode nos ajudar…

anjos:~ # zypper search ocr
Loading repository data...
Reading installed packages...

S | Name        | Summary                                                   | Type   
--+-------------+-----------------------------------------------------------+--------
  | gocr        | Optical Character Recognition                             | package
  | gocr-gui    | Optical Character Recognition - Basic Graphical Interface | package
  | ocrad       | GNU Ocrad--Optical Character Recognition Program          | package
  | ocrad-devel | Development files for GNU ocrad                           | package

Vamos instalar o gocr.

anjos:~ # zypper install gocr
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  gocr gocr-gui 

2 new packages to install.
Overall download size: 377.0 KiB. After the operation, additional 912.0 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package gocr-0.48-6.4.x86_64 (1/2), 364.0 KiB (895.0 KiB unpacked)
Retrieving: gocr-0.48-6.4.x86_64.rpm [done (68.6 KiB/s)]
Retrieving package gocr-gui-0.48-6.4.x86_64 (2/2), 13.0 KiB (17.0 KiB unpacked)
Retrieving: gocr-gui-0.48-6.4.x86_64.rpm [done]
Installing: gocr-0.48-6.4 [done]
Installing: gocr-gui-0.48-6.4 [done]

Prontinho.
Agora é só testar.

A interface do programa não é das mais atrativas, mas é funcional.

Aqui é bem simples, basta escolher o arquivo de imagem e clicar em “Run it”. Depois é só salvar o resultado num txt no menu File -> Save output.

Problema resolvido né! Quase…
Imagina ter que gerar o txt de 29 imagens. Por que não otimizar?

T=1;
for A in NACERP0102*.png
do
  if [ -f $A ] ; 
  then
    gocr -i NACERP0102-$T.png -o NACERP0102-$T.txt
  fi

T=$(($T+1));
done

Obs.: Quem deu uma força gerando o script foi meu amigo Cláudio Miranda.

Missão cumprida e usuário feliz. o/

Abraços. 😀

Publicidade

3º ETS – Encontro de Tecnologia Simonsen

No último sábado, dia 05/11, passei o dia em Padre Miguel, bairro muito conhecido por sua escola de samba, Mocidade Independente de Padre Miguel aliás, minha escola de samba do coração,* e aqui fica localizada a Faculdade Simonsen. Já visitei a Simonsen em outras circunstâncias (colegas graduandos) mas para um evento de tecnologia, essa foi a minha primeira vez.

3º ETS – Encontro de Tecnologia Simonsen

Assim que cheguei já senti um clima bacana, os organizadores muito animados e confiantes de que seria um ótimo evento (e foi!).

Com um certo atraso devido à dificuldade na liberação da credencial para os participantes, enfim o evento começa.

Pois bem, procurei os eventos mais focados em redes e segurança e o primeiro deles foi o Workshop de Pen Test com o Oscar Marques.

Ótima explicação sobre as técnicas e ferramentas de invasão e defesa. Tínhamos a nossa disposição instalado das máquinas o Backtrack, ou seja, a oportunidade para muitos ali de mexer pela primeira vez com port scanners, snnifers e etc. Infelizmente a maioria não tinha a menor noção de como mexer no Linux, o que dificultou um pouco o andamento e acredito que tenha limitado um pouco o aprofundamento no tema, mas vi que todos saíram ainda mais interessados no assunto.
Download Backtrack Linux – Penetration Testing Distribution

Assim que acabou fui tão rapidinho para a próxima palestra que consegui pegar uma boa parte da apresentação do Zeno Rocha sobre HTML5. Já havia assistido essa palestra no FSLDC, pelo menos foi o que pensei. Com uma palestra remodelada e cheia de novidades, pude ver novas funcionalidades muito atrativas para os que trabalham na área de programação para web.

Uma das coisas que me chamou a atenção foi uma animação bacana feita em CSS, o desenho em si ficou simples, eu sei, mas só pelo fato de não se utilizar Flash já deixou o vídeo bem rápido e na minha opinião muito criativo. Sem falar que adoro homem-aranha. 😉
Spiderman – Look Ma, no Flash!

Uma pausa para um flagra!!!
Olha só o Oscar Marques revisando a sua apresentação “PHP for Android” para o PHP’n RIO. Essa não tinha como não registrar, né!

Pra quem queria muita ação e pouco papo ta aí a palestra perfeita. Marcos Pitanga com “A arte do hacking ético”, nada de slides, apenas máquinas virtuais e muitas demonstrações. Utilizando diversas ferramentas vimos por exemplo, as senhas do /etc/passwd serem mostradas em texto puro com o auxílio do John (John the Ripper) e a invasão a um sistema Windows aproveitando a falha de segurança de uma das versões do Acrobat Reader 9.

E depois de passar a semana batendo a cabeça pra colocar o GingerBread no meu celular (Xperia mini pro) por que não assistir uma palestra de Android? Aproveitei pra trocar umas idéias com o Oscar antes da sua palestra sobre “Google Android, visão geral”. Uma viagem sobre a história, conceitos, aplicativos, novas ROMs e segurança.

Posso puxar sardinha pro meu lado? Posso? rs
Quando o Oscar comentou sobre as formas de se atualizar o Android num celular, fui surpreendida com o comentário sobre o meu recente esforço em colocar “na mão” o Android 2.3.7 no meu Sony. Felicidade foi pouco pra descrever o que senti. 😀

A palestra seguinte foi sobre um tema muito interessante, “Obsolecência Programada e Software Livre” com Rodrigo Graça. Ouvimos um pouco sobre a utilização do Software Livre na área de imagem e video, reaproveitamento de equipamentos considerados “lixos” eletrônicos e direitos autorais. Durante a apresentação, Rodrigo Graça mostra como mantém sua empresa utilizando somente ferramentas livres para criação de comerciais, propagandas e filmes como a mesma qualidade final das soluções proprietárias.

Para quem ficou curioso pra ver os trabalhos, ta aqui o site e olha que legal, todos os videos estão sob licença Creative Commons. 🙂
www.ricolandia.com

E por último mas não menos importante temos a palestra do Filipe Barros, aliás sua estréia como palestrante e já começou com o pé direito.
Com o tema “Entendendo e Explorando Falhas de Segurança” mais uma vez vimos as facetas do Backtrack.

Com o foco voltado para as vulnerabilidades web, Filipe Barros nos mostrou ao vivo como se aproveitar de falhas no PHP (oriundas de descuidos do desenvolvedor) para executar exploits, falhas em widgets do WordPress e numa das versões do Proftpd.

Ufa, quanta coisa pra um dia!!
Foi um ótimo evento, com palestras de alto nível só ultrapassaram um pouco os horários. Valeu e MUITO a pena ter vindo e espero voltar ano que vem!

*Um trechinho off-tópic: Vou contar uma breve historia pra vocês sobre a minha paixão pela Mocidade. Em 1997, ao ver uma alegoria que na época foi considerada uma revolução tecnológica: um garoto jogando videogame, com telas de televisão no lugar das lentes dos óculos, fiquei completamente vidrada, e dali em diante com a sequência de enredos voltados para essa área, foi meu primeiro “estalo” de que a tecnologia me atraia.
Hoje trabalho com muito orgulho na área e posso dizer que foi um sonho de criança que virou realidade…

Abraços. 😉

Latinoware 2011 – Parte 2

Segundo dia de evento e uma grade mais dedicada aos projetos web, mobile e as comunidades.

Entrada do Parque tecnológico de Itaipu

Na sala Espaço Uruguai o dia foi dedicado ao Python com palestras que iam desde a história até a aplicabilidade de suas ferramentas. Muitos puderam tirar dúvidas de como integrá-lo com outras linguagens e saber de soluções dentro e fora do país que usam Python.

Este é um dos slides da palestra “Por que Python”. Onde os navegantes de primeira viagem dessa linguagem puderam conhecer a grande quantidade de empresas que apoiam e utilizam o Python.

Palestrante: Marcos André Lopes Mendes

Agora foi a hora de descontrair um pouco.
Quem não conhece o @ProgramadorReal ??
Quem nunca viu ou passou por uma situação das tantas já ilustradas em suas tirinhas?
Durante a palestra “Estudos de caso do site Vida de Programador”, aliás uma das mais procuradas do dia, os participantes conheceram um pouco mais da história do Vida de Programador, sua evolução e como se tornou um dos grandes sucesso da internet.

Palestrante: André Noel

Passeando pelos stands era fácil parar para trocar idéias com “feras” do Software Livre. Olha quem encontrei no stand da Espírito Livre.

João Fernando Costa Júnior - Revista Espírito Livre / Alessandro Silva - FSLDC / Carlos Eduardo Cruz (Cadonico) - Gnugraf

Outro ponto forte do evento foram as demonstrações da galera da Robótica onde todos podiam interagir com as criações. O maior sucesso ficou por conta dos jogos, sempre tinha alguém olhando e esperando sua vez de jogar um pouquinho.

Cantinho da Robótica

É isso galera, fico por aqui. Infelizmente não ficarei para o terceiro e último dia do evento, mas não quer dizer que não ternhamos um resumo de tudo de bom que rolou, pelo contrário, o amigo Laercio Motta (@laerciomasala) publicará em seu blog http://laerciomotta.com/ e aqui também o que rolou de melhor no dia 21/10.

Abraços. 😀

Latinoware 2011 – Parte 1
Latinoware 2011 – Parte 3