2012-04-10 7 views
3

Ich habe Probleme mit cv::sort Funktionalität in C++ API von OpenCV.Sortiermatrix in OpenCV

Ich versuche cv::Mat Inhalte in OpenCV mit

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

Der folgende Code gibt mir einen Übersetzungsfehler zu sortieren. Ich bin nicht sicher, was ist falsch mit diesem 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; 
} 
+2

Was ist der Fehler? – rutgersmike

Antwort

7

Sie haben cv :: sort() zu verwenden, anstatt sort(), auch Sie Namespace cv verwenden. Das liegt daran, dass C++ eine Implementierung von sort() im Namespace std hat und einfach mit sort() einen Konflikt verursacht.

+1

es fühlt sich manchmal albern an. Es erinnerte mich wieder daran, dass ich bei der Verwendung mehrerer Namespaces vorsichtig sein muss. Vielen Dank. – garak