如何从 c++ 接口 cv::Mat 转换为 c IplImage?

Posted

技术标签:

【中文标题】如何从 c++ 接口 cv::Mat 转换为 c IplImage?【英文标题】:How to convert from c++ interface cv::Mat to c IplImage? 【发布时间】:2012-09-10 16:13:39 【问题描述】:

如何从 c++ 接口 cv::Mat 转换为 c IplImage ? 这样我就用了 IplImage * lpl= matimage;

和 matimage 包含数据,经过一些操作后我想做逆变换。 来自 IplImage* lpl ===> cv::Mat 我可以使用副本数据吗?如何使用?

【问题讨论】:

How to convert a Mat variable type in an IplImage variable type in OpenCV 2.0?的可能重复 【参考方案1】:
cv::Mat img = ....;
IplImage iplImg = img;

然后

cv::Mat img2(iplImg);

【讨论】:

@rotating_image 我不确定我是否遵循。将图像分配给指针似乎不正确。【参考方案2】:
#include "iostream"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main()

    Mat image = imread("C:\\lena.jpg");
    IplImage image2 = image;
    cvShowImage("TESTiplimage",&image2);
    imshow("TESTmat",image);
    waitKey(0);

    return 0;

...试试这个代码...它适用于我...你应该得到 2 个窗口显示相同的图像..

【讨论】:

以上是关于如何从 c++ 接口 cv::Mat 转换为 c IplImage?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 cv::Mat 转换为 CvArr?

如何将opencv mat转换为字符串c ++

如何正确地将 cv::Mat 转换为具有完美匹配值的 torch::Tensor?

使用 OpenCV 在 C++ 中将 std::list 转换为 cv::Mat

如何将 cv::Mat 类型从 CV_16UC1 转换为 CV_8UC1

将 Magick::Image 转换为 cv::Mat