OPENCV 3.4.*版本 mat转IplIMage报错问题的解决方案

今天遇到了mat 转IplIMage的问题,网上的解决方案都失效了

总结一下失效方案有哪些:

1、  Mat image;

       IplImage src= image;

2、Mat image

 IplImage *src;

*src = IplImage(image);

3、 Mat image;

 

IplImage* src = (IplImage*)&IplImage(image);

4、甚至 mat operator Iplimage()方法都去掉了

5、我只能使用data赋值的方式了

Mat img;

IplImage* ipl_img = cvCreateImage(cvSize(img.cols, img.rows), IPL_DEPTH_8U, img.channels());
memcpy(ipl_img->imageData, img.data, ipl_img->height * ipl_img->widthStep);

不嫌麻烦就遍历赋值,也一样。
        int height = img.rows;
        int width = img.cols;
        int step = ipl_img->widthStep / sizeof(uchar);
        uchar* p_mat = img.data;
        uchar* p_ipl = (uchar*)(ipl_img->imageData);
        for (int i=0;i<height;i++)
        {                    
            for (int j=0;j<step;j++)
            {                
                p_ipl[i*step+j] = p_mat[i*step+j];                                
            }
        }

 

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值