2015-05-25 11 views
5

In opencv2.4.10 che ho usato prima, la conversione da CvMat * a cv :: Mat può essere eseguita come di seguito.Come convertire CvMat * in cv :: Mat in OpenCV3.0

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

Tuttavia, in opencv3.0 rc1 non è possibile convertire in questo modo. In alcuni siti Web, questa conversione può essere eseguita come di seguito.

CvMat* src = ...; 
cv::Mat dst; 
dst = cv::Mat(src->rows, src->cols, src->type, src->data.*); 

Se tipo di src è 'float', l'ultimo argomento è 'SRC-> data.fl'.

Perché il costruttore di cv :: Mat è diminuito? O ci sono dei metodi per la conversione da CvMat * a cv :: Mat?

risposta

7

CvMat * matrice

Mat M0 = cvarrToMat (matrice).

opencv fornito questa funzione anziché Mat (matrice).

Nota: in opencv 3.0 hanno avvolto tutti i costruttori che converte le strutture vecchio stile (cvmat, IPLImage) in Mat di nuovo stile in questa funzione.

+0

La nota è molto utile, l'ho appena modificata per distinguere un po 'di più ora. – JTIM

1

Al fine di convertire CvMat*-Mat quello che dovete fare in questo modo:

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