PyCCA
De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
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 )))
Como simular agentes difusores aleatorios ?
import numpy as np numero_de_nos = 50; # numero de agentes total_time = 33300; # total time steps a = np.random.randint(0,2,(numero_de_nos,numero_de_nos)); # random graph randomnet = a + a.T; # must be symmetrical or it will be a digraph fields = np.random.rand(numero_de_nos); # node fields, or agents atributs nonz = randomnet.nonzero(); # 2 dim-tuple with array counting indexes of connected nodes nonznum = len(nonz[0][:]); # number of edges edges = [(nonz[0][v],nonz[1][v]) for v in range(nonznum)]; # the edges of the random graph interact = 0; # interaction process, the mean of the two field while total_time > 0: sorteio_interacao = np.random.randint(0,nonznum,(1)); # the edge(interaction) sampling process interact = float(fields[edges[sorteio_interacao[0]][0]]+fields[edges[sorteio_interacao[0]][1]])/2; fields[edges[sorteio_interacao[0]][0]] = float(fields[edges[sorteio_interacao[0]][0]] + interact)/2; fields[edges[sorteio_interacao[0]][1]] = float(fields[edges[sorteio_interacao[0]][1]] + interact)/2; print fields; total_time = total_time - 1;
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 )))