opencv中的kmeans函数

问题描述

opencv中的kmeans函数
LBPimage是一个3通道的灰度图像。通过kmeans函数之后,分的两类,labels的各个分量都是0,只有第一个和最后一个元素是1.请问大神们,错在哪里。

Mat LBPimage=LBP(imgs);
int nl = LBPimage.rows;
int nc = LBPimage.cols;
Mat points;
points.create(nc*nl, 1, CV_32FC1);
int n = 0;
for (int i = 0; i < nl; i++)
{
    for (int j = 0; j < nc; j++)
    {
        points.at<int>(n,0) = (int)LBPimage.at<Vec3b>(i, j)[0];
        n++;
    }
}
Mat labels;
Mat centers;
kmeans(points, 2, labels, TermCriteria(CV_TERMCRIT_EPS,10000,0.01), 50, KMEANS_PP_CENTERS, centers);
时间: 2024-08-31 14:28:23

opencv中的kmeans函数的相关文章

OpenCV中的KMeans算法介绍与应用

一.KMeans算法介绍 KMeans算法是MacQueen在1967年提出的,是最简单与最常见的数据分类方法之一.它做为一种常见数据分析技术在机器学习.数据挖掘.模式识别.图像分析等领域都有应用.如果从分类角度看,KMeans属于硬分类即需要人为指定分类数目,而MeanSift分类方法则可以根据收敛条件自动决定分类数目.从学习方法上来说,KMeans属于非监督学习方法即整个学习过程中不需要人为干预的学习方法,自动完成整个数据集合分类.对于给定的数据集合DS (Data Set)与输入的分类数目

opencv 中的inRange函数怎么用,求高人指点///,急求,大神给帮忙解决一下,谢谢

问题描述 opencv 中的inRange函数怎么用,求高人指点///,急求,大神给帮忙解决一下,谢谢 inRange函数的参数是什么意思,有没有详解??opencv 中的inRange函数怎么用,求高人指点///,急求,大神给帮忙解决一下,谢谢 解决方案 void cvInRangeS( const CvArr* src CvScalar lower CvScalar upper CvArr* dst );src 第一个原数组 lower 包括进的下边界. upper 不包括进的上边界 dst

OpenCV学习(22) opencv中使用kmeans算法

kmeans算法的原理参考:http://www.cnblogs.com/mikewolf2002/p/3368118.html 下面学习一下opencv中kmeans函数的使用.      首先我们通过OpenCV中的随机数产生器RNG,生成一些均匀分布的随机点,这些点的位置对应一副图像中的像素位置,然后使用kmeans算法对这些随机点进行分类,并计算出分类簇的中心点.      随机产生的簇的数量是2到5之间的值,采样点的数量范围是1-1000,一维矩阵centers存放kmeans算法结束

科普丨【计算机视觉】OpenCV中直方图处理函数简述

作者Jason DingGitCafe博客主页(http://jasonding1354.gitcafe.io/) 计算直方图calcHist 直方图是对数据集合的统计 ,并将统计结果分布于一系列预定义的bins中.这里的数据不仅仅指的是灰度值 ,统计数据可能是任何能有效描述图像的特征. 假设有一个矩阵包含一张图像的信息 (灰度值 0-255): 既然已知数字的范围包含256个值, 我们可以将这个范围分割成子区域(称作 bins),如: 然后再统计掉入每一个bin_{i}的像素数目.采用这一方法

jpg-opencv中的imread函数问题

问题描述 opencv中的imread函数问题 为什么使用imread函数时候,第二个参数的设置会最终影响是否能读入图片?比如jpg的用1的时候可以,用0的时候就说内存泄漏?但是用0不应该是强制转换成灰度图像?这真的必须按规定值使用吗? 解决方案 额,用人家的东西,得按照别人的规则使用啊 解决方案二: imread的第二个参数就是选择读出来的图是灰度图或者是RGB图的,如果程序运行中出现崩溃,可能是配置的库的问题,比如debug和release的库混着配置了,可以贴下你读图的代码和项目的附加依赖

matlab-MATLAB中的直方图均衡函数histeq在opencv中实现碰到的问题

问题描述 MATLAB中的直方图均衡函数histeq在opencv中实现碰到的问题 有没有人知道 MATALB中的直方图均衡函数histeq和opencv中的cvEqualizeHist()函数的区别,还有我把网上所以的直方图均衡函数都试了一遍 结果发现在opencv中均衡化后的图像的平均值 要大于MATLAB中均衡化后的平均值 有没有大神碰到过类似的情况

c++-我调用opencv中的函数计算出的hu矩没有旋转、缩放不变性,请大家帮我看下程序哪出问题了。

问题描述 我调用opencv中的函数计算出的hu矩没有旋转.缩放不变性,请大家帮我看下程序哪出问题了. #include #include #include using namespace std; using namespace cv; int main(int argc, char *argv[]) {//读入图片预处理 Mat image=imread("F:vs2010 project21.jpg"); //image.create(480, 640, CV_8UC1); na

目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)

在这一节中,主要讲目标跟踪的一个重要的算法Camshift,因为它是连续自使用的meanShift,所以这2个函数opencv中都有,且都很重要.为了让大家先达到一个感性认识.这节主要是看懂和运行opencv中给的sample并稍加修改.      Camshift函数的原型为:RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria).      其中probImage为输入图像直方图的反向投影

计算方差-请教大神在opencv中怎么计算图像局部方差

问题描述 请教大神在opencv中怎么计算图像局部方差 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差,谢谢 解决方案 你也在学opencv吗,可以交流下 解决方案二: 局部,是正常的矩形还是不规则区域 矩形: 坐标的x y即像素点的x y根据长宽遍历 不规则: 我暂时没有计算过 你图像是灰阶还是RGB 如果灰阶 按照灰阶度使用公式即可,如果是RGB建议先用cvmerxx 函数忘记了 把RGB通道合成之