4

次のopenCV関数の呼び出しを使用して、K-meansアルゴリズムを実行します。

cvKMeans2(points, count, &clusters, cvTermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0 ), 1, CV_KMEANS_USE_INITIAL_LABELS, centers);

どこ

image2 = cvLoadImage( "lab.jpg", 0);
points = cvCreateMat( image2->height, image2->width, CV_32FC1 );    
cvConvert(image2, points);
//count= number of clusters.
CvMat* centers; // To store the center of each cluster. (output).

lab.jpgは、CIE L * a *b*形式の画像です。

ただし、上記の行は、コンパイル中に次のエラーを示しています。

`CV_KMEANS_USE_INITIAL_LABELS' undeclared (first use in this function) 

too many arguments to function `cvKMeans2' 

誰かがどこが間違っているか、特にKMEANS_USE_INITIAL_LABELSが宣言されていないという最初のエラーを指摘できれば非常に役立ちます。

前もって感謝します !

4

1 に答える 1

2

opencvドキュメントからcvKMeans2

フラグ–0またはCV_KMEANS_USE_INITIAL_LABELSにすることができます。

あなたはCV_を省略しました。

編集:との間には2つの引数が必要であるため、またはのいずれかをスキップしていることにも注意してください。試すtermcritflagsattemptsrng

cvKMeans2(points, count, &clusters, cvTermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0 ), 1, 0, CV_KMEANS_USE_INITIAL_LABELS, centers);
于 2012-06-16T15:26:47.637 に答える