Sort Matrix in OpenCV

c++, opencv

Solution

You have to use cv::sort() rather than sort(), even you are using namespace cv. That is because C++ has an implementation of sort() in namespace std and simply using sort() will make a conflict.

Problem

I'm having trouble using `cv::sort` functionality in C++ API of OpenCV. I'm trying to sort `cv::Mat` contents in OpenCV using `cv::sort(InputArray src, OutputArray dst, int flags);` The following code gives me a compilation error. I'm not sure whats wrong with this code: ``` 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; } ```

Original source