import numpy as np
import matplotlib.pyplot as plt
from sklearn import cluster, datasets
from sklearn.preprocessing import StandardScaler
from itertools import cycle, islice
import cv2
#将提取的灰度分量替换成颜色分量,则完成颜色分割
image = cv2.imread('1.png',0)
X = np.reshape(image,[image.shape[0]*image.shape[1],1])
X = X/255
eps = 0.001
min_samples=4
dbscan = cluster.DBSCAN(eps=eps,min_samples=min_samples)
y_pred = dbscan.fit(X)
#采用k-means进行二分类
# from sklearn.cluster import KMeans
# clf = KMeans(n_clusters=2)
# y_pred = clf.fit(X)
label = y_pred.labels_
image_temp =np.reshape(label,[image.shape[0],image.shape[1]])
n=1
temp = np.zeros([image.shape[0],image.shape[1]])
xy = np.where(image_temp==n)
x=xy[0]
y=xy[1]
temp[x,y] = 255
plt.figure(figsize=(15,15))
plt.imshow(temp,'gray')
plt.show()
聚类做图像灰度分割(python)
最新推荐文章于 2024-05-14 06:04:31 发布