#include "stdafx.h"
using namespace cv; int main(int argc, char** argv)
{
Mat img=imread("d:/pic/lena.jpg");
imshow("src",img);
CV_Assert(!img.empty());
vector<Mat> planes;
split(img,planes);
int total=img.total();
Mat p(total,,CV_32F,Scalar::all());
int i;
for(i=;i<total;i++)
{
p.at<float>(i,)=planes[].data[i];
p.at<float>(i,)=planes[].data[i];
p.at<float>(i,)=planes[].data[i];
}
RNG rng();
int num=; //canopy个数
double t1=200.0,t2=100.0; //两个距离阈值
vector<Mat> canopy(total); //canopy矩阵组
while(!p.empty())
{ int r=p.rows; //余下的数据的行数
Mat temp;
int k=rng.uniform(,r); //在余下的数据中随机抽选一个作为canopy中心
cout<<"The rest of number of rows: "<<r<<", random:"<<k<<endl;
for(i=;i<r;i++)
{
double d=norm(p.row(k),p.row(i)); //计算选出点和其它点的距离
if(d<=t1)
canopy[num].push_back(p.row(i)); //将距离小于t1的所有点放入到一个新的canopy中
if(d>t2)
temp.push_back(p.row(i)); //更新数据
}
temp.copyTo(p);
num++;
}
cout<<"the total number of canopy:"<<num<<endl; //最终类别数
for(i=;i<num;i++)
cout<<"the number of "<<i+<<" class: "<<canopy[i].total()<<endl;
waitKey();
return ;
}

最新文章

  1. yii2分页的基本使用及其配置详解
  2. 【随笔】从gitHub上获取源码
  3. 有评论就是我最大的动力~MySQL基础篇完结(存储引擎和图形化管理工具)
  4. java操作小技巧,遇到过的会一直更新,方便查找
  5. POJ2396 Budget(有源汇流量有上下界网络的可行流)
  6. Python装饰模式实现源码分享
  7. bpl
  8. JSOI2008最大数(线段树)
  9. ASP.NET 导入excel 数据
  10. Windows Phone开发(32):路径之PathGeometry
  11. 洛谷 P3674 小清新人渣的本愿 [莫队 bitset]
  12. Nonlinear Component Analysis as a Kernel Eigenvalue Problem
  13. html之head标签
  14. 1010:Tempter of the Bone
  15. linux运行apache出现403错误
  16. 关于tomcat session机制梳理
  17. 「ZJOI2015」地震后的幻想乡
  18. python-面向对象-09_类属性和类方法
  19. windows上面非常好用的辅助软件
  20. git instaweb 500 error

热门文章

  1. mysql学习之路_外键
  2. RGB,YCBCR在HDMI传输线是数据排列
  3. Linux批量远程命令和上传下载工具
  4. Linux入门(1)——Ubuntu16.04安装搜狗拼音
  5. 一天学习两个设计模式之Facade模式(外观模式,结构型模式)
  6. 第85讲:Scala中For表达式的强大表现力实战
  7. 使用Xshell在Windows系统和Linux系统之间进行文件传输
  8. SRM470
  9. 创建Pods私有库
  10. iOS笔记之UIKit_UIButton