PyCCA: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Sem resumo de edição
Linha 5: Linha 5:
== Redes Complexas ==
== Redes Complexas ==


((Ver também ARS))
'''((( Ver também [[ARS]] )))'''


== Processamento de Imagens ==
== Processamento de Imagens ==


((Ver também PythonImage))
'''((( Ver também [[PythonImagem]] )))'''
 
=== Como abrir uma imagem? ===
 
<pre>
from PIL import Image
im = Image.open('foo.jpg')
</pre>
 
=== Como converter em escala de cinza? ===
 
<pre>
im_cinza = im.convert('L')
</pre>
 
=== Como equalizar uma imagem por histograma? ===
 
<pre>
from PIL import ImageOps
im_eq = ImageOps.equalize(im_cinza)
</pre>
 
=== Como aplicar uma função qualquer com janelamento de 3x3? Ou, como aplicar um filtro qualquer com janelamento? ===
 
No caso, vamos aplicar a função entropia em cada pixel da imagem. A função entropia recebe como argumento os 9 vizinhos do pixel, já que o tamanho da janela (argumento size da função generic_filter) é equivalente a 3. A função entropia retorna o novo valor do pixel.
 
<pre>
from scipy import ndimage
 
def entropia(viz):
    viz = list(viz)
    qtd = [viz.count(x) for x in viz]
    prob = [viz[i]/qtd[i] for i in range(len(viz))]
    return n.sum([-x*n.log(x) for x in prob if x != 0])
 
im_entropia = ndimage.generic_filter(im_cinza, entropia, size=3)
</pre>
 
=== Como calcular o valor de entropia de uma imagem inteira? ===
 
<pre>
def entropia(im, nbr_bins=256):
    hist = im.histogram()
    hist_length = sum(hist)
    samples_probability = [float(h) / hist_length for h in hist]
    return sum([-p * log(p) for p in samples_probability if p != 0])
 
v_entropia = entropia(im_cinza)
</pre>
 
=== Como calcular os valores de energia de uma imagem? ===
 
<pre>
from scipy import fftpack
energias = fftpack.fft2(im_cinza).real**2 + fftpack.fft2(im_cinza).imag**2
</pre>


== Processamento de Áudio e Música ==
== Processamento de Áudio e Música ==


((Ver também PythonMusica, AudioArt, Massa))
'''((( Ver também [[PythonMusica]], [[AudioArt]], [[Massa]] )))'''


[[Category:Lab_Macambira, AudioArt, Python]]
[[Category:Lab_Macambira, AudioArt, Python]]

Edição das 20h29min de 13 de março de 2013

Python, Computação Científica e Aplicações

FAQ/Tutorial sobre achados e notas nas aplicações de Python para Computação Científica.

Redes Complexas

((( Ver também ARS )))

Processamento de Imagens

((( Ver também PythonImagem )))

Como abrir uma imagem?

from PIL import Image
im = Image.open('foo.jpg')

Como converter em escala de cinza?

im_cinza = im.convert('L')

Como equalizar uma imagem por histograma?

from PIL import ImageOps
im_eq = ImageOps.equalize(im_cinza)

Como aplicar uma função qualquer com janelamento de 3x3? Ou, como aplicar um filtro qualquer com janelamento?

No caso, vamos aplicar a função entropia em cada pixel da imagem. A função entropia recebe como argumento os 9 vizinhos do pixel, já que o tamanho da janela (argumento size da função generic_filter) é equivalente a 3. A função entropia retorna o novo valor do pixel.

from scipy import ndimage

def entropia(viz):
    viz = list(viz)
    qtd = [viz.count(x) for x in viz]
    prob = [viz[i]/qtd[i] for i in range(len(viz))]
    return n.sum([-x*n.log(x) for x in prob if x != 0])

im_entropia = ndimage.generic_filter(im_cinza, entropia, size=3)

Como calcular o valor de entropia de uma imagem inteira?

def entropia(im, nbr_bins=256):
    hist = im.histogram()
    hist_length = sum(hist)
    samples_probability = [float(h) / hist_length for h in hist]
    return sum([-p * log(p) for p in samples_probability if p != 0])

v_entropia = entropia(im_cinza)

Como calcular os valores de energia de uma imagem?

from scipy import fftpack
energias = fftpack.fft2(im_cinza).real**2 + fftpack.fft2(im_cinza).imag**2

Processamento de Áudio e Música

((( Ver também PythonMusica, AudioArt, Massa )))