• Mat类型与IplImage类型之间相互转换


    (1)将IplImage类型转换到Mat类型

    Mat::Mat(const IplImage* img, bool copyData=false);

    默认情况下,新的Mat类型与原来的IplImage类型共享图像数据,转换只是创建一个Mat矩阵头。当将参数copyData设为true后,就会复制整个图像数据。

    例:

    IplImage* iplImg = cvLoadImage("greatwave.jpg", 1);

    Mat mtx(iplImg); // IplImage* ->Mat 共享数据

    // or : Mat mtx = iplImg;

     

    (2)将Mat类型转换到IplImage类型

     

    同样只是创建图像头,而没有复制数据。

     

    例:

     

    IplImage ipl_img = img; // Mat -> IplImage

     

    (3)将CvMat类型转换为Mat类型

     

    与IplImage的转换类似,可以选择是否复制数据。

     

    Mat::Mat(const CvMat* m, bool copyData=false);

     

    (4)将Mat类型转换为CvMat类型

     

    与IplImage的转换类似,不复制数据,只创建矩阵头。

     

    例:

     

    // 假设Mat类型的imgMat图像数据存在

     

    CvMat cvMat = imgMat; // Mat -> CvMat

     

    转自:http://hi.baidu.com/windroc/blog/item/e5c2d3c4707fead938db4907.html

     

  • 相关阅读:
    ACM-生化武器
    ACM-Antiprime数
    ACM-寻宝
    ACM-小偷的背包
    ACM-吴奶奶买鱼
    ACM-挑战题之排列生成
    ACM-数细胞
    ACM-售货员难题
    学习《linux》课程
    MATLAB 求圆形面积
  • 原文地址:https://www.cnblogs.com/test-myblog/p/3448377.html
Copyright © 2020-2023  润新知