2012-04-10 170 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