2012-04-22 29 views
5

He pasado mucho tiempo buscando cómo convertir de cv :: Mat o CvMat a CvArr pero sin ganancia, por favor ayúdenme en eso, gracias.cómo convertir de cv :: Mat a CvArr?

+1

CvArr es un parámetro de función "método" para pasar múltiples tipos de datos de imagen. No es un tipo sino un metatipo. Entonces, hagas lo que hagas, es cvMat lo que necesitas. – William

Respuesta

1

¿Seguro quieres convertirlo? a veces hay una función equivalente que usa lo que tienes. Por ejemplo, cvMorphologyEx está usando CvArr pero morphologyEx está usando cv::Mat.

0

convertir primero la imagen utilizando la siguiente:

IplImage* oldstyleimg = &matimg.operator IplImage() 

No recuerdo si sólo crear la cabecera de la imagen o se hace una copia

4

Cuando tengo que hacer que yo sólo uso :

IplImage tmp = image; 

Con la imagen a Mat variable.

3
Mat img = imread("C:\MyPic.jpg",CV_LOAD_IMAGE_GRAYSCALE); 
IplImage tmp=img; 
cvErode(&tmp, &tmp, 0, 2); 
Mat laser=&tmp; 
    imshow("Eroded",laser); 

que convierte a cv::MatCvArr de esta manera. En lugar de usar tmp use directamente &tmp.

Cuestiones relacionadas