国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

opencv KMeans.cpp 學(xué)習(xí)

2019-11-08 02:29:34
字體:
供稿:網(wǎng)友
打算利用KMeans算法做一個聚類,將聚類后的數(shù)據(jù)進行分析。學(xué)習(xí)下KMeans API的使用,順便學(xué)習(xí)下常見的一些函數(shù)的用法。官方文檔如下:
#include "opencv2/highgui.hpp"#include "opencv2/core.hpp"#include "opencv2/imgPRoc.hpp"#include <iostream>using namespace cv;using namespace std;// static void help()// {//     cout << "/nThis program demonstrates kmeans clustering./n"//             "It generates an image with random points, then assigns a random number of cluster/n"//             "centers and uses kmeans to move those cluster centers to their representitive location/n"//             "Call/n"//             "./kmeans/n" << endl;// }int main(int /*argc*/, char** /*argv*/){	const int MAX_CLUSTERS = 5;	Scalar colorTab[] =	{		Scalar(0, 0, 255),		Scalar(0,255,0),		Scalar(255,100,100),		Scalar(255,0,255),		Scalar(0,255,255)	};	Mat img(500, 500, CV_8UC3);	RNG rng(12345);	for (;;)	{		int k, clusterCount = rng.uniform(2, MAX_CLUSTERS + 1);		int i, sampleCount = rng.uniform(1, 1001);		Mat points(sampleCount, 1, CV_32FC2), labels;		clusterCount = MIN(clusterCount, sampleCount);		Mat centers;		/* generate random sample from multigaussian distribution */		for (k = 0; k < clusterCount; k++)		{			Point center;			center.x = rng.uniform(0, img.cols);			center.y = rng.uniform(0, img.rows);			Mat pointChunk = points.rowRange(k*sampleCount / clusterCount,				k == clusterCount - 1 ? sampleCount :				(k + 1)*sampleCount / clusterCount);			rng.fill(pointChunk, RNG::NORMAL, Scalar(center.x, center.y), Scalar(img.cols*0.05, img.rows*0.05));		}		randShuffle(points, 1, &rng);		kmeans(points, clusterCount, labels,			TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 10, 1.0),			3, KMEANS_PP_CENTERS, centers);		img = Scalar::all(0);		for (i = 0; i < sampleCount; i++)		{			int clusterIdx = labels.at<int>(i);			Point ipt = points.at<Point2f>(i);			circle(img, ipt, 2, colorTab[clusterIdx], FILLED, LINE_AA);		}		imshow("clusters", img);		char key = (char)waitKey();		if (key == 27 || key == 'q' || key == 'Q') // 'ESC'			break;	}	return 0;}RNG 隨機數(shù)產(chǎn)生器。RNG::uniform() 產(chǎn)生單個服從均勻分布的隨機數(shù)。RNG::fill(
 (InputOutputArray mat,
  int distType,
  InputArray a,
  InputArray b,
  bool saturateRange = false 
 )
)將Mat填充以服從正態(tài)分布或者均勻分布的隨機數(shù)(正態(tài)分布的均值為a,方差為b;均勻分布的邊界為a b)后續(xù)補充
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广灵县| 文水县| 泸水县| 喀什市| 都匀市| 改则县| 南靖县| 共和县| 成安县| 辽源市| 长宁区| 瑞丽市| 广东省| 武冈市| 太原市| 维西| 大兴区| 华宁县| 阳信县| 留坝县| 修水县| 谢通门县| 无极县| 乌兰察布市| 阿拉善盟| 璧山县| 蒙城县| 崇州市| 淮阳县| 怀柔区| 五华县| 德江县| 东丰县| 海丰县| 旬阳县| 波密县| 奇台县| 大兴区| 开鲁县| 遵化市| 靖远县|