Numpy + PIL para processamento de imagens

Disparado, as melhores ferramentas que usei para uma disciplina na faculdade até agora.

Numpy para manipulação de matrizes e a PIL para abrir/salvar a imagem e pegar as informações. Alguns métodos já prontos não podem ser utilizados (afinal, é p/ aprender a implementar na mão) mas ainda assim é tudo bem direto e rápido.

Basicamente o trabalho se resume a pegar uma imagem e aplicar algumas transformações pontuais, espaciais e no domínio da frequência (Fourier, sempre ele…). Assim que entregar a versão final coloco o código online.

Análise do curso de Python p/ turma de design

Há algumas semanas eu e Marcelo fomos apresentar um mini-curso de python/pymaemo para uma turma de design no CAC/UFPE, representando o INdT.

O planejado era apresentar a linguagem python e em seguida como desenvolver programas usando pygame no maemo. Porém, visto que eles não tinham pouca ou nenhuma experiência prévia em programação, a opção ficou em aproveitar os dois dias para praticar bastante python e em outra oportunidade partir para algo mais específico

No primeiro dia, após uns problemas de infra-estrutura (murphy, sempre ele), demos uma passada rápida pelo que é python e fomos p/ laboratório instalar e abrir o IDLE para a parte prática. Durante esse dia, apresentando o conceito de função, um deles soltou “Como assim, função?”. O conceito já estava tão enraizado que acabou ficando meio complicado explicar, mas depois de um tempo, usando como analogia bater claras em neve numa receita, todo mundo conseguiu entender, acho 🙂

No segundo dia (acho que tinha metade da turma), a estratégia foi diferente: Eles iriam ficar o tempo todo no computador, bastante exercícios e seguir o ritmo deles, mas sempre tentando forçar um pouco mais. E foi exatamente assim que eles (ou pelo menos os que estavam no computador) conseguiram aprender mais, vendo os próprios erros e consertando.

Mas o diferencial na segunda parte foi mostrar um pouco do que dá p/ fazer com o pygame, em especial com um mini-wrapper que criei numa madrugada (portanto, muito incompleto ainda) especificamente para esse curso: o simplegame. Ao ver algo do domínio deles (jogos) que a coisa ficou bem mais clara e até o humor deles mudou (acordaram).

Num post futuro eu falo mais sobre o simplegame. Por enquanto vale dizer que é um wrapper que abstrai (ou tenta abstrair?) a parte chata de loop, tratamento de eventos, colisões e outras coisas relativa a jogos simples.

Resumindo:
• Cuidado com coisas que você acha óbvias. Você pode ter que explicar elas para alguém que não acha isso óbvio.
• Programação não se aprende com livros, curso, se aprende fazendo. E a longo prazo
• Eles podem surpreender. Eu tinha feito um código simples de umas 7 linhas como resolução de um exercício e ir aprimorando e os caras já mandaram a versão de 2 linhas de cara…

Ah, me falaram desse curso depois desse post. Parece que já tava prevendo…