2
有些問題提到了同樣的不可理解的例外,但我想用一個最簡單的例子來清楚地問一下。在OpenCV中計算代碼簿
我有以下代碼:
- 負荷全部由文件SIFT描述;
- 規範描述符,如他們是CV_32F;
然後:
初始化BowTrainer(基於一個示例代碼線上找到):
TermCriteria tc(CV_TERMCRIT_ITER,100,0.001); int retries=1; int flags=KMEANS_PP_CENTERS; BOWKMeansTrainer bow_trainer(dictionary_size, tc, retries, flags);
最後:
vocabulary = bow_trainer.cluster(training_descriptors);
其中training_descriptors
是一個1218772 * 128
CV_32F矩陣包含0,1歸一化SIFT描述符。
不幸的是cluster
生成異常說:
OpenCV Error: Assertion failed (data.dims <= 2 && type == CV_32F && K > 0) in kmeans, file /Users/u/Downloads/OpenCV-2.4.4/modules/core/src/matrix.cpp, line 2686
類型的矩陣是正確的,即CV_32F
,我不明白他們data.dims應該< = 2,爲什麼它看起來像K < = 0.
嗨,我解決了這個問題,但不記得我做了什麼。在我的情況下,有幾個描述符。 – 2014-02-20 09:51:07