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 | '''((( 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 )))