使用K-Means算法实现图像分割算法程序
时间: 2023-07-14 14:13:24 浏览: 112
基于k-means算法的图像分割研究
5星 · 资源好评率100%
以下是使用K-Means算法实现图像分割的Python代码示例:
```
import numpy as np
import cv2
# 加载图片
img = cv2.imread('image.jpg')
# 将图片转换为可用于K-Means算法的格式
img_flat = img.reshape((-1, 3))
img_flat = np.float32(img_flat)
# 设置K-Means算法参数
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
k = 2
# 运行K-Means算法
_, labels, centers = cv2.kmeans(img_flat, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
# 将分割结果转换为原始图片格式
centers = np.uint8(centers)
res = centers[labels.flatten()]
res = res.reshape((img.shape))
# 显示原始图片和分割结果
cv2.imshow('Original Image', img)
cv2.imshow('Segmented Image', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,首先加载要进行分割的图片,然后将其转换为可用于K-Means算法的格式。接着设置K-Means算法的参数,包括最大迭代次数和簇的数量。然后运行K-Means算法,并将分割结果转换为原始图片格式。最后显示原始图片和分割结果。
阅读全文