Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 对图像向量使用k-均值_Opencv_Image Processing_Computer Vision_K Means - Fatal编程技术网

Opencv 对图像向量使用k-均值

Opencv 对图像向量使用k-均值,opencv,image-processing,computer-vision,k-means,Opencv,Image Processing,Computer Vision,K Means,在图像向量上使用k-均值时,我有一个令人不安的疑问。我有一个RGB图像,我已经转换成HSV空间。基本上我只想在H向量上执行k-均值。这是一个214x300的向量 我有两个问题: 1.在将样本输入kmeans命令之前,是否应将其重塑为64200*1向量 2.如何找到每个簇的中心(我将簇分成4个簇,因此我需要4个位置,每个位置代表每个簇的中心。) 是的,您应该将矩阵重塑为1xN向量,其中N对应于正在聚类的色调值的数量。每个数据点都被视为要集群的单个数据点 k-means的很大一部分是寻找正确的聚类中

在图像向量上使用k-均值时,我有一个令人不安的疑问。我有一个RGB图像,我已经转换成HSV空间。基本上我只想在H向量上执行k-均值。这是一个214x300的向量

我有两个问题:

1.在将样本输入kmeans命令之前,是否应将其重塑为64200*1向量

2.如何找到每个簇的中心(我将簇分成4个簇,因此我需要4个位置,每个位置代表每个簇的中心。)

  • 是的,您应该将矩阵重塑为
    1xN
    向量,其中
    N
    对应于正在聚类的色调值的数量。每个数据点都被视为要集群的单个数据点

  • k-means的很大一部分是寻找正确的聚类中心。这种情况发生在你身上,不需要事先设定。如果您想使用好的中心初始化集群,请查看,但在运行k-means之前不必找到集群中心。要在聚类后获得计算出的聚类中心,只需查看调用k-means提供的输出数组。签名如下:

    双kmeans(InputArray数据,int K,InputOutputArray最佳标签,TermCriteria标准,int尝试,int标志,OutputArray中心=noArray())


  • 如您所见,kmeans()调用的最后一个参数是包含集群中心的矩阵。

    谢谢您的回复!。。然而,我的中心矩阵的大小是N*1(对于N*1输入)…我希望只得到4个值(一个值用于集群1,另一个值用于集群2等等)…我在这里遗漏了什么吗???@Chris…cv::kmeans(通道色调、计数、标签、TermCriteria(cv_TERMCRIT_EPS+cv_TERMCRIT_ITER,10,1.0)、5、kmeans_随机_中心、中心);“中心”的行数不等于“计数”的行数?不!!。。。它等于channelhue矩阵的行数没关系,听起来你已经得到了它?:)