Ir para conteúdo
Fórum Script Brasil
  • 0

:: Como mudar a imagem ::


Aaron

Pergunta

Boa Tarde pessoal eu preciso mudar a imagem que será analizada nesse código, já tentei colocar a minha imagem com o mesmo nome da que estava na biblioteca mas não funcionou alguém saberia me dizer como eu mudo a imagem da lena pra qualquer outra imagem?

Segue abaixo o código

import numpy as np
import scipy as sp
import pylab as pl
from sklearn import cluster
# n_clusters = número de clusters para a divisão da imagem no K_means = número de cores para a quantização da imagem
n_clusters = 8
np.random.seed(0)
#tenta achar lena na lib
try:
lena = sp.lena()
except AttributeError:
from scipy import misc
lena = misc.lena()
x, y = lena.shape # pega o tamanho da lena
X = lena.reshape((-1, 1)) # array(n_sample, n_feature)
k_means = cluster.KMeans( n_clusters, n_init = 4) #inicia k_means com n_cluster divisões
k_means.fit(X)
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_
print 'cores da lena quantizada:'
print values
print ' '
# cordenadas minimas e maximas da lena
vmin = lena.min()
vmax = lena.max()
# apos quantização com k_means cria 3 figuras
# figura 1: lena normal
pl.figure(1, figsize=(5, 4))
pl.imshow(lena, cmap=pl.cm.gray, vmin=vmin, vmax=256)
# figura 2: quantiza lena (com 'n_clusters' cores que são: as 'values' cores)
regular_lena = np.choose(labels.ravel(), values)
regular_lena.shape = lena.shape
pl.figure(2, figsize=(5, 4))
pl.imshow(regular_lena, cmap=pl.cm.gray, vmin=vmin, vmax=vmax)
# figura 3: plota histograma (cinza = figura 1, linhas azuis = cores da figura 2)
pl.figure(3, figsize=(5, 4))
pl.clf()
pl.axes([.01, .01, .98, .98])
pl.hist(X, bins=256, color='.5', edgecolor='.5') #histograma figura 1
pl.yticks(())
pl.xticks(values)
values = np.sort(values)
for x in range(n_clusters): #plota as linhas das cores da figura 2 em azul
pl.axvline(values[x])
# função quadratica
soma = 0
for i in range(lena.shape[0]):
for j in range(lena.shape[1]):
soma += int((lena[j] - regular_lena[j])**2)
m = (1./(lena.shape[0]*lena.shape[1]))*soma
print ('mse: ')
print m
pl.show()

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...