在OpenCV中排序矩阵

gar*_*rak 4 c++ opencv

我在OpenCV的C++ API中使用cv::sort功能时遇到了麻烦.

我正在尝试使用OpenCVcv::Mat内容进行排序

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

以下代码给出了编译错误.我不确定这段代码有什么问题:

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;
}
Run Code Online (Sandbox Code Playgroud)

小智 8

你必须使用cv :: sort()而不是sort(),即使你使用的是命名空间cv.这是因为C++在命名空间std中有一个sort()实现,只是使用sort()会产生冲突.