def Kmean(img,k):# k кількість кластерів
# Перетворюємо зображення в одномірний масив
# потрібного типу даних
pixel_vals = img.reshape((-1,3))
pixel_vals = np.float32(pixel_vals)
#встановлюємо критерії виходу з обчислень
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.85)
#виконуємо кластеризацію
retval, labels, centers = cv2.kmeans(pixel_vals, k, None, criteria,\
10, cv2.KMEANS_RANDOM_CENTERS)
# Перетворюємо дані у 8-бітні значення
centers = np.uint8(centers)
segmented_data = centers[labels.flatten()]
# Повертаємося до початкових розмірів
segmented_image = segmented_data.reshape((img.shape))
return segmented_image
неділя, 11 квітня 2021 р.
Сегментація методом $k$-середніх
Підписатися на:
Дописати коментарі (Atom)
Немає коментарів:
Дописати коментар