OpenCV kmeans代码
来源:互联网 发布:淘宝买东西怎么改价格 编辑:程序博客网 时间:2024/05/21 18:47
代码:出处忘了
//// Example 13-1. Using K-means/////* *************** License:************************** Oct. 3, 2008 Right to use this code in any way you want without warrenty, support or any guarentee of it working. BOOK: It would be nice if you cited it: Learning OpenCV: Computer Vision with the OpenCV Library by Gary Bradski and Adrian Kaehler Published by O'Reilly Media, October 3, 2008 AVAILABLE AT: http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134 Or: http://oreilly.com/catalog/9780596516130/ ISBN-10: 0596516134 or: ISBN-13: 978-0596516130 OTHER OPENCV SITES: * The source code is on sourceforge at: http://sourceforge.net/projects/opencvlibrary/ * The OpenCV wiki page (As of Oct 1, 2008 this is down for changing over servers, but should come back): http://opencvlibrary.sourceforge.net/ * An active user group is at: http://tech.groups.yahoo.com/group/OpenCV/ * The minutes of weekly OpenCV development meetings are at: http://pr.willowgarage.com/wiki/OpenCV ************************************************** */#include "cxcore.h"#include "highgui.h"#pragma comment(lib,"opencv_core2410d.lib")#pragma comment(lib,"opencv_highgui2410d.lib")#pragma comment(lib,"opencv_ml2410d.lib")int main( int argc, char** argv ){ #define MAX_CLUSTERS 5 //最大聚类数 CvScalar color_tab[MAX_CLUSTERS]; IplImage* img = cvCreateImage( cvSize( 500, 500 ), 8, 3 ); CvRNG rng = cvRNG(0xffffffff); color_tab[0] = CV_RGB(255,0,0); color_tab[1] = CV_RGB(0,255,0); color_tab[2] = CV_RGB(100,100,255); color_tab[3] = CV_RGB(255,0,255); color_tab[4] = CV_RGB(255,255,0); cvNamedWindow( "clusters", 1 ); for(;;) { int k, cluster_count = cvRandInt(&rng)%MAX_CLUSTERS + 1; int i, sample_count = cvRandInt(&rng)%1000 + 1; CvMat* points = cvCreateMat( sample_count, 1, CV_32FC2 ); CvMat* clusters = cvCreateMat( sample_count, 1, CV_32SC1 ); /* generate random sample from multivariate Gaussian distribution */ for( k = 0; k < cluster_count; k++ ) { CvPoint center; CvMat point_chunk; center.x = cvRandInt(&rng)%img->width; center.y = cvRandInt(&rng)%img->height; cvGetRows( points, &point_chunk, k*sample_count/cluster_count, k == cluster_count - 1 ? sample_count : (k+1)*sample_count/cluster_count ); cvRandArr( &rng, &point_chunk, CV_RAND_NORMAL, cvScalar(center.x,center.y,0,0), cvScalar(img->width/6, img->height/6,0,0) ); } /* shuffle samples */ for( i = 0; i < sample_count/2; i++ ) { CvPoint2D32f* pt1 = (CvPoint2D32f*)points->data.fl + cvRandInt(&rng)%sample_count; CvPoint2D32f* pt2 = (CvPoint2D32f*)points->data.fl + cvRandInt(&rng)%sample_count; CvPoint2D32f temp; CV_SWAP( *pt1, *pt2, temp ); } cvKMeans2( points, cluster_count, clusters, cvTermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0 )); cvZero( img ); for( i = 0; i < sample_count; i++ ) { CvPoint2D32f pt = ((CvPoint2D32f*)points->data.fl)[i]; int cluster_idx = clusters->data.i[i]; cvCircle( img, cvPointFrom32f(pt), 2, color_tab[cluster_idx], CV_FILLED ); } cvReleaseMat( &points ); cvReleaseMat( &clusters ); cvShowImage( "clusters", img ); int key = cvWaitKey(0); if( key == 27 ) // 'ESC' break; }}
0 0
- OpenCV kmeans代码
- opencv K均值法代码 kmeans()
- 【opencv】kmeans
- opencv kmeans
- OpenCV学习入门(三):kmeans原理及代码
- Opencv之KMEANS篇
- OpenCV+KMeans算法
- opencv kmeans 算法例子
- python-opencv-kmeans聚类
- opencv KMeans.cpp 学习
- 【实录】将内嵌opencv中kmeans函数的c++代码改写为c代码
- Kmeans算法java代码
- MapReduce 运行Kmeans代码
- matlab kmeans 代码
- kmeans代码分析
- Kmeans++算法C++代码
- GMM Kmeans代码示例
- opencv之kmeans源代码注释
- uCOS-ii 如何获取最高优先级的Task
- 几种常见的Android自动化测试工具的关系
- 虚拟机VirtualBox怎么添加新的虚拟硬盘
- MINI2440 从NAND FLASH启动时的代码复制理解心得
- (mac)Android Studio安装以及Fetching android sdk component information超时的解决方案
- OpenCV kmeans代码
- Ubuntu12.04 安装 图形界面 SVN客户端 Rabbitvcs
- UVA-725除法-Division
- FZU2109:Mountain Number(数位DP)
- iOS申请真机调试证书-图文详解
- 圆形DIV之用户头像
- 贺利氏推新型ITO替代材料
- UTF-8有BOM与无BOM
- supervisor使用教程