2012-04-22 217 views
5

我已经通过了很多时间搜索如何从cv :: Mat或CvMat转换为CvArr但没有收益,请帮助我,谢谢。如何把cv :: Mat转换成CvArr?

+1

CvArr是一个函数参数“方法”来传递多种类型的图像数据。这不是一种类型,而是一种元类型。所以,无论你做什么,它都是cvMat你需要的。 – William 2013-02-28 10:39:08

回答

1

确定你想转换它?有时使用你所拥有的功能是等价的。例如cvMorphologyEx正在使用CvArr,但morphologyEx正在使用cv::Mat

0

使用第一转换图像以下:

IplImage* oldstyleimg = &matimg.operator IplImage() 

我不记得了,如果它只是创造图像的头部或者进行复印

4

当我需要做的,我只是用:

IplImage tmp = image; 

With image a Mat变量。

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); 

我通过这种方式转换cv::MatCvArr。而不是使用tmp直接使用&tmp