Exercício 1

Autor: José Antonio Huamán Layme
Data: 12/03/2009
ITEM ENUNCIADO ESTADO
1 Se registrar no Adessowiki e criar a sua página de diário do curso. OK
2 Estudar o Python (primer ou tutorial) http://docs.python.org/tutorial. Existe um site do Python no Brasil que pode ser útil também: http://www.pythonbrasil.com.br OK
3 Estudar o NumPy (tutorial, para entender arrays e pequenos truques de processamento de imagem). http://www.scipy.org/Tentative_NumPy_Tutorial. OK
4 Fazer um exercício que mostre os principais conceitos aprendidos. Procure fazer exercícios com matriz numérica de tamanho reduzido. OK
5 Estudar formas de gerar uma imagem xadrez e implementar algumas de sua preferência. Veja em: http://calhau.dca.fee.unicamp.br/wiki/index.php/IA354I1S2007_Exercicios. OK
ITEM 1
Acesso criada com o nome de usuario jahuaman
ITEM 2
ITEM 3

ITEM 4

PYTHON

 1 #versão iterativo como na versão recursiva
 2 def fibiter(n): # Escreve n números de Fibonacci
 3     "Escreve n números de Fibonacci."
 4     saida=[]
 5     a,b = 0,1
 6     for x in range(n):  # Uma secuencia 1,2,...,n com range
 7         print b,        # Escrevemos en uma línea
 8         saida.append(b)
 9         a, b = b, a+b
10     print '\n'
11     return saida
12 
13 def fibrec(n):
14     "Escreve n números de Fibonacci."
15     if (n < 2):
16         return n
17     else:
18         return fibrec(n-1) + fibrec(n-2)
19 
20 print fibiter(10),'\n'
21 print 'Fibonacci em posição 10 é ',fibrec(10)
1 1 2 3 5 8 13 21 34 55 

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 

Fibonacci em posição 10 é  55

NUMPY

 1 a=array((2,3,4,1))# - Uma dimensão
 2 b=arange(9)
 3 b.shape = 3,3 # - Duas dimensões
 4 c=array(((5,4,1),(3,1,1),(1,1,3)))
 5 d=zeros((3,4))
 6 e=ones((2,3,4),dtype=int16)
 7 suma=b+c #Suma de array B e C
 8 P=dot(b,c) #Producto array B e C
 9 print 'Array A\n', a,'\n'
10 print 'Array B\n', b,'\n'
11 print 'Array C\n', c,'\n'
12 print 'Suma B+C\n', suma,'\n'
13 print 'dot(B,C)\n', P,'\n'
Array A
[2 3 4 1] 

Array B
[[0 1 2]
 [3 4 5]
 [6 7 8]] 

Array C
[[5 4 1]
 [3 1 1]
 [1 1 3]] 

Suma B+C
[[ 5  5  3]
 [ 6  5  6]
 [ 7  8 11]] 

dot(B,C)
[[ 5  3  7]
 [32 21 22]
 [59 39 37]]

IMAGENES

1 img = mmreadgray('keyb.tif');
2 mmshow(img,title='img - Exemplo de leitura de imagen')

img - Exemplo de leitura de imagen

ITEM 5

 1 def tabuleroNxM(filas,colunas,factor):
 2     tabulero=arange(filas*colunas).reshape(filas,colunas)
 3     tabuleroX=arange(filas*colunas*factor*factor).reshape(filas*factor,colunas*factor)
 4     for i in range(filas):
 5         for j in range(colunas):
 6             tabulero[i,j]=mod(i+j,2)
 7     for ii in range(filas*factor):
 8         for jj in range(colunas*factor):
 9             tabuleroX[ii,jj]=tabulero[ii/factor,jj/factor]
10     return uint16(tabuleroX)
11 
12 
13 
14 Img=tabuleroNxM(9,16,15)
15 mmshow(Img,title='Tabuleiro de 9x16, zom x 15')

Tabuleiro de 9x16, zom x 15