import cv2
import numpy as np
import sys
src_cv_img = cv2.imread(sys.argv[1])
h,w,c = src_cv_img.shape
print(h,w,c)
cv_img = src_cv_img.reshape(-1,3)
print(cv_img.shape)
from sklearn.cluster import KMeans
estimator = KMeans(n_clusters=4)#构造聚类器
estimator.fit(cv_img)
label_pred = estimator.labels_
x = np.argmax(np.bincount(label_pred))
for i,j in enumerate(cv_img):
if(label_pred[i] == x ):
cv_img[i] = np.asarray([255,255,255])
output_cv_img = cv_img.reshape(h,w,c)
cv2.imwrite("tmp.jpg",output_cv_img)
原照片:
结果(white.jpg)
美图秀秀自动抠图(美图秀秀.jpg)
ps(ps.jpg