如何在kmean之后显示聚集图像

How can i show clustered image after kmeans?

本文关键字:显示 聚集 图像 之后 kmean      更新时间:2023-10-16

我想使用一个数组作为k均值算法的输入。该数组具有x和y方向的位移值,是Lucas Kanade光流估计的结果。代码如下:

编辑:

int number_of_features=150;
// Lucas Kanade optical flow 
cvCalcOpticalFlowPyrLK(frame1_1C,frame2_1C,pyramid1,pyramid2,frame1_features,frame2_features,number_of_features,optical_flow_window, 5,optical_flow_found_feature, optical_flow_feature_error,optical_flow_termination_criteria, 0 );
float Dx[150],Dy[150]; // displacement matrices
float  Dis[150][2]; // total displacement matrix
int K=2; // clusters selected
Mat bestLabels, centers;
for(int i = 0; i < number_of_features; i++)
{
CvPoint p,q;
p.x = (int) frame1_features[i].x;
p.y = (int) frame1_features[i].y;
q.x = (int) frame2_features[i].x;
q.y = (int) frame2_features[i].y;
//displacements
Dx[i]=p.x-q.x;
Dy[i]=p.y-q.y;
Dis[i][0] = Dx[i];
Dis[i][1] = Dy[i];
}

// k means algorithm

// Creating Mat for Input data
cv::Mat flt_Dis(150, 2, CV_32F, Dis);
cv::kmeans(flt_Dis, K, bestLabels,TermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0),3, KMEANS_PP_CENTERS, centers);

我已经解决了以前的问题,现在我想显示聚集的图像。我猜bestLabels存储每个元素的索引,例如,如果它被分类到第0或第1类。我说得对吗??如何显示聚集的图像?

K-means可以实现来处理整数。你只需要这么做。

但是结果不会是整数。