如何转换cv :: Mat至CvArr?

时间:2012-04-22 16:25:42

标签: c++ opencv

我已经花了很多时间搜索如何从cv :: Mat或CvMat转换为CvArr但没有任何收获,请帮助我,谢谢。

5 个答案:

答案 0 :(得分:4)

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::Mat转换为CvArr。而不是直接使用tmp使用&tmp

答案 1 :(得分:3)

当我需要这样做时,我只使用:

IplImage tmp = image;

使用图像Mat变量。

答案 2 :(得分:1)

如果我没记错的话,CvMat是一个CvArr,所以你可以把它转换成CvArr,现在CvArr的第一个字节告诉函数它实际上是一个CvMat: http://opencv.willowgarage.com/documentation/basic_structures.html#cvarr

答案 3 :(得分:1)

您确定要转换吗?有时会有相同的功能使用你拥有的东西。例如,cvMorphologyEx正在使用CvArrmorphologyEx正在使用cv::Mat

答案 4 :(得分:0)

首先使用以下内容转换图像:

IplImage* oldstyleimg = &matimg.operator IplImage()

我不记得它是只为图像创建标题还是制作副本

相关问题