Friday, April 08, 2011

Dica Python - Script para visualizar imagens

Esta disponivel em meu novo site, https://sites.google.com/site/wanartsci, dois código python para visualização de imagens. Um dos códigos usa a biblioteca PIL e outro não. PIL é uma biblioteca python para manipulação de imagens. O código abaixo, o qual não utiliza PIL, pode abrir arquivos gif(sem animação), ppm e pgm e usa a classe PhotoImage.
Para mais informações vide http://effbot.org/tkinterbook/photoimage.htm e http://www.pythonware.com/products/index.htm

Código simpleViewer.py:



# -*- coding: cp1252 -*-
#Code by Wandeson R.
#04/2011
#My pages:
# http://www.kartunoderikardo.blogspot.com
# https://www.sites.google.com/site/wanartsci
#


import sys
from Tkinter import*

class simpleViewer:
"""This class implements a simple viewer of
images ppm and gif(without animation) images.
View images ppm, gif(not animated). Put
name file in line command for open."""
def __init__(self, image=None):
root = Tk()
root.title("Simple Viewer")
#List of cursors type. Listas de cursores.
cursor_list = ["umbrella", "trek",
"spider", "spraycan", "sailboat",
"gumby", "gobbler", "heart",
"pirate", "man"]
#Configure cursor. Change cursor for
#"trek". Muda cursor para "trek"
root.configure(cursor="trek")
#Open image ppm/gif(without animation).
#Abrir imagem ppm/gif(sem animação).
self.image = PhotoImage(file=image)
#self.image = self.image.subsample(3)

self.label = Label(root, image=self.image)
self.label.pack()
#Loop for program
root.mainloop()

#Iniciliaze application. Inicia aplicação.
if __name__=="__main__":

if len(sys.argv)>1:
print">> Your Image: ", sys.argv[1]
#Create viewer for image.
#Cria visulizador com simpleViewer.
myViewer = simpleViewer(sys.argv[1])

else:
print"""Insert argument name for file name
example simpleViewer name_file.ppm
Suported format is ppm and gif(without
animation).
"""
exit(0)






Saturday, November 13, 2010

Dica Python: Função lambda & Matplotlib para aproximar derivada e visualizar gráfico

O código abaixo mostra como usar o matplotlib e funções lambda em Python para computar a derivada e visualizar o gráfico. No gráfico é possível ver a função \(f(t) = t^2\) e a equação aproximada para tangente num ponto P de f(t).
Em Python lambda é uma função que contém só expressões. Sua forma geral é:
f = lambda [lista de parâmetros] : [expressão].

A biblioteca Matplotlib para Python, serve para visualização de dados em forma de gráficos. (Este código também utilizará recursos do Numpy de forma direta.)

Para mais informações visite:
www.python.org
www.scipy.org
http://matplotlib.sourceforge.net/

Aproximando a derivada
Para calcular a aproximação para derivada, em geral, a partir da definição, utiliza-se a
forma:
$$ f'(x) \approx \lim_{h \to 0} \frac{f(x + h) - f(x)}{h} $$ .
O valor para f' é obtido aplicando-se limite, ou seja, \(f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}\), que significa que "a medida que tomamos valores da h cada vez mais próximos de 0 o valor do limite se tornará mais próximo de L logo,
$$ \lim_{h \to 0 } f(x) = L$$ .

Para mais informações:
www.openstudy.com/
http://ocw.mit.edu/
www.wikipedia.org/

Nestes sites é possível encontrar video aulas, informações extras e etc.. O código desta dica está abaixo e com comentários.

#-*- encoding: utf-8 -*-
#Este codigo desenha o gráfico de f e uma aproximação
#para sua tangente em P.

import numpy
import numpy as np
import matplotlib.pyplot as plt


#Aproximação da derivada : d/dx(f) = f'(x) ~ (f(x+h) - f(x))/h
#Função que aproxima valor da derivada em P
def deriv(f, x, delta):
return ( (f(x+delta) - f(x))/delta )

#Vetor contendo valores para t. Usada para grfico
t = np.arange(-1.0, 2.5, 0.1)
#Cria "figura" para o gráfico.
plt.figure(1)

#Função y=f(x)
f = lambda x: x**2

#Aproximação para equação da reta tantegente a função
#f(t) em P(x1,y1).
r = lambda x, x1, y1, delta: deriv(f, x1, delta)*(x-x1) + y1

#texto para os eixos de coordenadas
plt.xlabel('t')
plt.ylabel('f(t)')

#titulo
plt.title('Aproximando valor da derivada')

#Definindo P=(x0,y0). Ponto de tangência.
x0, y0 = 1.5, f(1.5)

#f'(x) ~ ( f(x+h) - f(x) )/ h
#Parametro para aproximação
h= 0.00001


#Criando gráfico.
plt.plot(t,f(t), t, r(t,x0, y0, h), x0, y0, 'bo')

#Exibindo o gráfico
plt.show()

Gráfico:





(Para dicas, sugestões e correções e/ou apontamento de erros favor
deixar seu comentário.)

Saturday, June 12, 2010

ChatBot Taina Maria

Acabo de publicar em minha página do Google Code um pequeno código python para criação de chatbot. Ele aproveita recursos do Speech SDK 5.1 Windows para reconhecimento e sintese de voz.
Testei com windows XP usando em inglês. Para Windows XP só encontrei o pacote para reconhecimento de inglês, japonês e chinês simplificado.
Os requerimentos são: Pytho2.6x+, PySpeech, Comtypes, PythonWin32, Speech SDK Windows. Mais informações e o link estão disponiveis em http://www.arttecnologwr.110mb.com.
Dúvidas, comentários e sugestões favor contactar-me.
Minha página: https://sites.google.com/site/wanartsci e http://code.google.com/p/codesart.
Links requerimentos:

www.microsoft.com/speech

www.python.org

http://code.google.com/p/pyspeech/

http://sourceforge.net/projects/comtypes/files/

http://sourceforge.net/projects/pywin32/

http://pyaiml.sourceforge.net/

Links interessantes
http://surguy.net/articles/speechrecognition.xml
http://www.daniweb.com/forums/thread88358.html
http://probing.wikidot.com/speech-recognition-using-sphinx3-and-python
http://www.wxpython.org/







Tuesday, November 17, 2009

TV Lux - Emissora de tv católica

Tem alguns dias que descobre esta emissora. quando pesquisava sobre tvs online. A TV Lux é uma emissora de televisão católica da Eslováquia originada em 2008. Programas da emissora são centrados em valores cristãos. É possível assisti-la no site ou usando um programa reprodutor de vídeo que permita abrir urls exibir conteúdo de vídeos. O link para o site da emissora está publicado no blog.