8

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

4

5 回答 5

5
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直接使用 use &tmp

于 2015-03-02T12:24:07.957 回答
4

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

IplImage tmp = image;

使用图像 Mat 变量。

于 2013-02-27T16:04:45.600 回答
1

您确定要转换它吗?有时有等效的功能可以使用您所拥有的功能。例如cvMorphologyEx正在使用CvArrmorphologyEx正在使用cv::Mat.

于 2013-02-27T14:52:12.920 回答
1

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

于 2012-04-22T17:13:43.667 回答
-1

首先使用以下方法转换图像:

IplImage* oldstyleimg = &matimg.operator IplImage()

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

于 2013-02-27T15:30:19.720 回答