Opencv Kmeans聚类算法
来源:互联网 发布:stevie nicks 知乎 编辑:程序博客网 时间:2024/06/13 09:00
k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小
1. 算法基本步骤
(1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心;
(2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
(3) 重新计算每个(有变化)聚类的均值(中心对象);
(4) 计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足则回到步骤(2)。
2.OpenCV 函数使用
int cvKMeans2(const CvArr* samples, //输入样本的浮点矩阵,每个样本一行
int nclusters,//所给定的聚类数目
CvArr* labels, //输出整数向量:每个样本对应的类别标识
CvTermCriteria termcrit, //指定聚类的最大迭代次数和/或精度(两次迭代引起的聚类中心的移动距离)
int attempts=1, CvRNG* rng=0,int flags=0,
CvArr* centers=0,double* compactness=0);
下面还用到了函数CvMat* cvReshape( const CvArr* arr, CvMat* header, int new_cn, int new_rows=0 );
arr 输入的数组. header 被添充的矩阵头 new_cn 新的通道数.new_cn = 0 意味着不修改通道数 new_rows 新的行数。
如果new_rows = 0保持原行数不修改否则根据 new_cn 值修改输出数组 函数 cvReshape 初始化 CvMat 头header 以便于让头指向修改后的形状(但数据保持原样)-也就是说修改通道数,修改行数或者两者者改变。
结果如下所示:
- Opencv Kmeans聚类算法
- Opencv Kmeans聚类算法
- opencv之kmeans聚类算法
- KMEANS聚类算法
- KMeans聚类算法
- kmeans聚类算法
- Kmeans聚类算法
- Kmeans聚类算法
- kmeans 聚类算法
- Kmeans 聚类算法
- KMeans聚类算法
- kmeans聚类算法
- KMeans聚类算法
- kmeans聚类算法
- KMeans聚类算法
- KMeans聚类算法
- Kmeans聚类算法
- OpenCV+KMeans算法
- C++ 常用算法的应用实例
- 推荐一个不错书籍
- smart210下移植RT3070
- Hdu 5236 Article【思维+期望Dp】
- 彻底解决 Android webview 防止重定向
- Opencv Kmeans聚类算法
- Head First javaScript_#9_对象
- 微信小程序之音乐播放器
- element ui 表格提交时获取所有选中的checkbox的数据
- Android用LitePal操作数据库存取图片
- Windows下搭建pomelo开发环境
- Linux V4L2驱动架构解析与开发导引
- Linux-远程登陆Linux、互传文件
- 类和对象