python-opencv3 kmeans图像分类
des = sift.detectAndCompute(gray, None) # 检测并计算描述符
正确写法: Kp,des=sift.detectAndCompute(gray,None)#检测并计算描述符
注意:detect和Compute可以一起写,也可以分开写,
import os, codecs import cv2 import numpy as np from sklearn.cluster import KMeansdef get_file_name(path):''''' Args: path to list; Returns: path with filenames ''' filenames = os.listdir(path)path_filenames = []filename_list = []for file in filenames:if not file.startswith('.'):path_filenames.append(os.path.join(path, file))filename_list.append(file)return path_filenamesdef knn_detect(file_list, cluster_nums, randomState=None):features = []files = file_listsift = cv2.xfeatures2d.SIFT_create()for file in files:print(file)img = cv2.imread(file)img = cv2.resize(img, (32, 32), interpolation=cv2.INTER_CUBIC)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)print(gray.dtype)kp,des = sift.detectAndCompute(gray, None) # 检测并计算描述符 # Kp,des=sift.detectAndCompute(gray,None)#检测并计算描述符 # des =sift.detect(gray, None)# sift.detectAndCompute(gray, None) # # # 找到后可以计算关键点的描述符 # Kp, des = sift.compute(gray, des) if des is None:file_list.remove(file)continue reshape_feature = des.reshape(-1, 1)features.append(reshape_feature[0].tolist())input_x = np.array(features)kmeans = KMeans(n_clusters=cluster_nums, random_state=randomState).fit(input_x)return kmeans.labels_, kmeans.cluster_centers_def res_fit(filenames, labels):files = [file.split('/')[-1] for file in filenames]return dict(zip(files, labels))def save(path, filename, data):file = os.path.join(path, filename)with codecs.open(file, 'w', encoding='utf-8') as fw:for f, l in data.items():fw.write("{}\t{}\n".format(f, l))def main():path_filenames = get_file_name("./picture/")labels, cluster_centers = knn_detect(path_filenames, 2)res_dict = res_fit(path_filenames, labels)save('./', 'knn_res.txt', res_dict)if __name__ == "__main__":main()
python-opencv3 kmeans图像分类相关推荐
- 数据挖掘-聚类分析(Python实现K-Means算法)
概念: 聚类分析(cluster analysis ):是一组将研究对象分为相对同质的群组(clusters)的统计分析技术.聚类分析也叫分类分析,或者数值分类.聚类的输入是一组未被标记的样本,聚类根 ...
- kmeans算法实例及python代码-Python实现k-means算法
本文实例为大家分享了Python实现k-means算法的具体代码,供大家参考,具体内容如下 这也是周志华<机器学习>的习题9.4. 数据集是西瓜数据集4.0,如下 编号,密度,含糖率 1, ...
- python实现K-means多维数据聚类代码
python实现K-means多维数据聚类 #!/usr/bin/env python #-*- coding:utf-8 -*- # author:wanglubao # datetime:2019 ...
- Python使用K-means聚类分析
Python使用K-means聚类分析 文章目录 Python使用K-means聚类分析 介绍 1.集群标签作为特征 一.k-均值聚类 二.示例 - 加州住房 2.KMeans 总结 介绍 提示:这里 ...
- [549]python实现K-Means算法
K-Means是一种聚类(Clustering)算法,使用它可以为数据分类.K代表你要把数据分为几个组,前文实现的K-Nearest Neighbor算法也有一个K,实际上,它们有一个相似之处:K-M ...
- 利用 Python 实现 K-means 算法
利用 Python 实现 K-means 算法 使用 Python 实现K-means算法,采用随机函数随机在二维平面上生成100个点,然后使用所写程序对这100个点进行聚类[可以采用SSE(Su ...
- 《机器学习》西瓜书课后习题9.4——python实现K-means算法
<机器学习>西瓜书课后习题9.4--python实现K-means算法 9.4 试编程实现k均值算法,设置三组不同的k值.三组不同的初始中心点,在西瓜数据集4.0上进行实验比较, 并讨论什 ...
- 使用Python+opencv+k-means根据扫描图片计算叶片面积-续
一 .概述 之前写了一篇计算叶片面积的文章,后来想想其实没有那么复杂,直接二值化计算即可得到,原来的代码写了几十行,其实十余行就可以计算得到叶片面积了. 原文:使用Python+opencv+k-me ...
- 基于Python的Kmeans聚类分析介绍及实践
基于Python的Kmeans聚类分析介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 聚类算法 ...
- [Python与图像处理]利用Python与Kmeans聚类分析图像主色彩
如何使用OpenCV,Python和k-means聚类算法来查找图像中最主要的颜色 该任务可用于分析一张优秀摄影作品的色彩分布,并建立色卡图,将其用于本地调色. K-Means聚类,那么k-mea ...
最新文章
- 7 开机启动文件路径_为什么当我登录的时候,总有一些文件会被打开
- Springmvc与Struts2不同
- 指南:如何运用谷歌Google Shopping和Product Listing Ads
- 谷歌浏览器中打开IE
- JavaScript面试大全(二)
- 海量图片存储解决方案
- 非静压模型NHWAVE学习(1)——模型原理简介(控制方程)
- Windows 身份验证的凭据进程
- JS逆向加密解密工具Crypto Magician、乐易助手、WT-JS 下载使用
- 未转变者服务器物品ID大全,Unturned未转变者Elver物品代码大全 Elver地图全ID代码汇总...
- java引_JAVA中的引用
- 手机浏览网页或打开App时莫名弹出支付宝领红包界面的原因及应对措施
- 语义分割制作自己的数据集
- 十六进制配色(ggplot2配色)
- 映客首推 “直播春晚”:小年夜登场开启线上狂欢
- python --windos系统托盘
- 赢在微创新 之 痛点 尖叫点
- git archive详解
- 【情态动词练习题】mustn‘t 和 don‘t have to
- 路由器回流--内网不能访问网站的问题
热门文章
- nginx 正则匹配优化(一)
- python 3d绘图 范围_python – 在3D绘图中绘制所有三个轴上的分布轮廓
- eBPF学习——抓取内核网络中的socket信息
- python计算结果传给spark_将Python函数作为对象传递给Spark
- html求和按钮,使用模板标记在html模板中求和
- qt mysql显示文件名字_【实例】Qt获取文件属性
- 千万别只顾着代码不上厕所
- 皮一皮:听说这是功夫熊猫风的情侣酒店...
- 95 后大学生利用漏洞免费吃肯德基获刑
- 双十一,你买了哪些大呼过瘾的编程书?