import scipy as sp
import matplotlib.pyplot as plt

from sklearn import cluster


try:  # SciPy >= 0.16 have face in misc
    from scipy.misc import face
    face = face(gray=True)
except ImportError:
    face = sp.face(gray=True)

n_clusters = 5
np.random.seed(0)

X = face.reshape((-1, 1))  # We need an (n_sample, n_feature) array
k_means = cluster.KMeans(n_clusters=n_clusters, n_init=4)
k_means.fit(X)
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_

# create an array from labels and values
face_compressed = np.choose(labels, values)
face_compressed.shape = face.shape

vmin = face.min()
vmax = face.max()

# original face
plt.figure(1, figsize=(3, 2.2))
plt.imshow(face, cmap=plt.cm.gray, vmin=vmin, vmax=256)
import scipy as sp
import matplotlib.pyplot as plt

from sklearn import cluster

try:  # SciPy >= 0.16 have face in misc
    from scipy.misc import face

    face = face(gray=True)
except ImportError:
    face = sp.face(gray=True)

n_clusters = 5
np.random.seed(0)

X = face.reshape((-1, 1))  # We need an (n_sample, n_feature) array
k_means = cluster.KMeans(n_clusters=n_clusters, n_init=4)
k_means.fit(X)
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_

# create an array from labels and values
face_compressed = np.choose(labels, values)
face_compressed.shape = face.shape

vmin = face.min()
vmax = face.max()

# original face
plt.figure(1, figsize=(3, 2.2))
plt.imshow(face, cmap=plt.cm.gray, vmin=vmin, vmax=256)
示例#3
0
assert a == 1
print(1)
assert a == 0
print(0)

# 實作k-means
try:  # SciPy >= 0.16 have face in misc
    from scipy.misc import face
    face = face(gray=True)
except ImportError:
    face = sp.face(gray=True)  # face是一張圖片,大小為768*1024

n_clusters = 5
np.random.seed(0)

X = face.reshape((-1, 1))  # 拉成一維向量 (n_sample, n_feature) array
k_means = cluster.KMeans(n_clusters=n_clusters,
                         n_init=4)  # K_means分類,num_cluster=5
k_means.fit(X)
values = k_means.cluster_centers_.squeeze(
)  # 使用不同 centroid seeds 運行 k-means 算法的時間
labels = k_means.labels_

face_compressed = np.choose(labels,
                            values)  #labels範圍0~4,長度768*1024,values代表五個k_keans值
face_compressed.shape = face.shape

v_min = face.min()
v_max = face.max()

plt.figure(1, figsize=(3, 2.2))