2015-05-25 5 views
5

In opencv2.4.10, die ich zuvor verwendet habe, kann die Konvertierung von CvMat * zu cv :: Mat wie folgt durchgeführt werden.Wie konvertiert man CvMat * zu cv :: Mat in OpenCV3.0

CvMat *src = ...; 
cv::Mat dst; 
dst = cv::Mat(src); 

In opencv3.0 kann rc1 jedoch nicht wie folgt konvertieren. In bestimmten Websites kann diese Umwandlung wie folgt durchgeführt werden.

Wenn der Typ von src 'float' ist, ist das letzte Argument 'src-> data.fl'.

Warum Konstruktor von cv :: Mat ist verringert? Oder gibt es einige Methoden zur Konvertierung von CvMat * zu cv :: Mat?

Antwort

7

CvMat * Matrix

Mat M0 = cvarrToMat (Matrix).

opencv stellte diese Funktion anstelle von Mat (Matrix) zur Verfügung.

Hinweis: In opencv 3.0 haben sie alle Konstruktoren eingepackt, die Strukturen im alten Stil (cvmat, IPLImage) in den neuen Stil Mat in diese Funktion umwandeln.

+0

Die Notiz ist sehr hilfreich, ich habe es gerade bearbeitet, um ein bisschen mehr heraus jetzt zu stehen. – JTIM

1

Um CvMat*-Mat Sie so tun müssen, um konvertieren:

cv::Mat dst(src->rows, src->cols, CV_64FC1, src->data.fl);