图片聚类——k-means算法的python实现

更新时间:2023-07-20 19:24:59 阅读: 评论:0

图⽚聚类——k-means算法的python实现徐英三级
1.前⾔
这篇⽂章是基于k-means算法进⾏图⽚聚类,⽽不是对单个图⽚的像素聚类,分别基于RGB、HSV和HOG特征进⾏聚类分析。
2.图⽚特征提取——RGB
RGB为图⽚最基本的特征,但很多时候RGB颜⾊空间并不能很好的作为图⽚聚类的聚簇依据,通常不符合⼈们对颜⾊相似性的主观判断,我尝试了⽤RGB进⾏聚类,但是效果并没有其他两种好。
其实现代码如下:
2个字的游戏名字def get_rgb_hist_feature(image_name):肉丝番号
hist_feature = []
img = cv2.imread(image_name)
艾叶泡脚有什么好处color = ('b', 'g', 'r')
for index, value in enumerate(color):
hist = cv2.calcHist([img], [index], None, [256], [0, 256])
hist_feature.append(hist)
return list(np.array(hist_feature).ravel())
分别提取RGB颜⾊空间,最终返回列表。
3.图⽚特征提取——HSV
hsv能够简单的描述⼀张图⽚颜⾊的全局分布,适⽤于那些难以⾃动分割、不需要考虑物体空间位置的图像。hsv的三个分量分别为:⾊彩(Hue)、饱和度(Saturation)、值(Value)。
其代码实现如下:
def get_hsv_hist_feature(image_name):
hist_feature = []
img = cv2.imread(image_name)
img = size(img, (256, 256))
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
一脉
hist_h = cv2.calcHist([hsv], [0], None, [180], [0, 180])
hist_h = alize(hist_h, hist_h)
hist_feature[0:180] = hist_h[:,0]
hist_s = cv2.calcHist([hsv], [1], None, [256], [0, 256])
hist_s = alize(hist_s, hist_s)
春节作文100hist_feature[180:436] = hist_s[:,0]
hist_v = cv2.calcHist([hsv], [2], None, [256], [0, 256])
hist_v = alize(hist_v,hist_v)
hist_feature[436:692] = hist_v[:,0]
return list(np.array(hist_feature).ravel())
在hsv特征中,每个分量都有⾃⼰的取值范围,在提取特征时需要注意列表长度。
4.图⽚特征提取——HOG特征
事情作文
HOG特征检测算法实现的⼏个步骤:颜⾊空间归⼀化、梯度计算、梯度⽅向直⽅图、重叠块直⽅图归⼀化、HOG特征。
其实现代码如下:
def get_hog_feature(image_name):
img = cv2.imread(image_name)
img = size(img, (256, 256))
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hog_feature = feature.hog(gray_image, orientations=8, pixels_per_cell=(16, 16),                    cells_per_block=(1, 1))
小女孩卡通return list(hog_feature.ravel())

本文发布于:2023-07-20 19:24:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107472.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:特征   空间   需要   实现   聚类   提取   列表   梯度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图