我正在爲ios平臺開發opencv應用程序。我有我自己編譯的調試和發佈方案的opencv,但是當我嘗試使用Debug方案運行cv::meanStdDev
函數時,應用程序失敗,出現異常(使用Release它可以正常工作)。 測試功能很簡單:爲什麼cv :: meanStdDev函數在調試時失敗,出現異常
float list[] = {1.2,1.2,1.3,0.3,6.5,2.2,0.9,0.8,0.9};
cv::Mat test(1,9,CV_32F, list);
cv::Scalar mean1, stddev1;
cv::meanStdDev(test, mean1, stddev1);
printf("[%f, %f]", mean1.val[0], stddev1.val[0]);
此功能工作正常的發行方案,但在調試,它拋出這樣一個異常:
OpenCV Error: Assertion failed (dims == 2 && ((sizes[0] == sz.height && sizes[1] == sz.width) || (allowTransposed && sizes[0] == sz.width && sizes[1] == sz.height))) in create, file /Users/jgoenetxea/libraries/OpenCV-2.4.0/trunk/opencv/modules/core/src/matrix.cpp, line 1375
terminate called throwing an exception
此行是一個「創造」功能矩陣類。 在這一點上,kind()
函數在同一個矩陣的調試和發佈方案中給出了不同的值。當選擇調試方案時,由於此kind()
函數的結果,執行使用CV_Assert
函數調用檢查某些數據,然後失敗。
任何想法?有人知道我可以檢查什麼?
這類問題在OpenCV郵件列表中有更多的機會接受正確的答案。這太具體了。 – karlphillip 2012-07-06 13:21:44