2012-04-10 155 views
3

我在使用cv::sort功能時出現問題C++ API的OpenCVOpenCV中的排序矩陣

我試圖使用

cv::sort(InputArray src, OutputArray dst, int flags);

下面的代碼給了我一個編譯錯誤cv::Mat內容OpenCV的排序。我不知道什麼是錯,此代碼:

using namespace std; 
using namespace cv; 
int main(int argc, char** argv) 
{ 
    Mat matrix(5,5,CV_32F,Scalar(0)),m; 
    randn(matrix, 2.00, 1.00); 
    cout<<"before sorting:\n"<<matrix<<endl; 
    sort(matrix, m, CV_SORT_EVERY_ROW + CV_SORT_ASCENDING); 
    cout<<"after sorting:\n"<<m<<endl; 
    return 0; 
} 
+2

什麼是錯誤? – rutgersmike 2012-04-10 00:53:46

回答

7

你必須使用CV ::排序(),而不是排序(),即使您正在使用的命名空間的簡歷。這是因爲C++在命名空間std中有一個sort()的實現,並且簡單地使用sort()會產生衝突。

+1

它有時感覺很傻。它再次提醒我,在使用多個名稱空間時需要小心。謝謝。 – garak 2012-04-10 14:43:31