• 【转】Cvmat与IplImage的相互转换


    seyvlei 原文地址

    1、IplImage转Cvmat

       IplImage* src = cvLoadImage("rice.bmp",0);
       CvMat* mat=cvCreateMat(src->height,src->width,CV_32SC1);
       cvConvert(src,mat);

    或者:

    Cvmat matObj;
    * mat=cvGetmat(src,&matObj);

    2、Cvmat转IplImage

    IplImage* pImg = cvCreateImage(cvGetSize(mat),8,1);
    cvGetImage(matI,pImg);
    cvSaveImage("rice1.bmp",pImg);

    from:http://apps.hi.baidu.com/share/detail/19289229

    使用函数cvGetMat和cvGetImage,首先要创建矩阵头,和图像头,数据共享。

    例:

    IplImage,CvMat圖形矩陣空間

    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main()
    {
         IplImage *Image1;
         IplImage *Image2;
         CvMat *Matrix1;
    
         CvSize Size1;
         Image1=cvLoadImage("footpath.jpg",1);
    
         Size1=cvGetSize(Image1);
    
         Image2=cvCreateImageHeader(Size1,IPL_DEPTH_8U,3);
         Matrix1=cvCreateMatHeader(Size1.height,Size1.width,CV_8UC3);
    
         cvGetMat(Image1,Matrix1);
    
         cvFlip(Matrix1,Matrix1,1);
    
         cvGetImage(Matrix1,Image2);
    
         cvNamedWindow("footpath (Flip)",1);
         cvShowImage("footpath (Flip)",Image2);
         cvWaitKey(0);
    
         cvReleaseImage(&Image1);
         cvReleaseImageHeader(&Image2);
         cvReleaseMatHeader(&Matrix1);
         cvDestroyWindow("footpath (Flip)");
    }
  • 相关阅读:
    为什么编程是独一无二的职业
    TSQL 编程规范
    Windows实战Git环境配置msysGit+TortoiseGit
    Linux环境下Socket编程
    数据持久化
    Javascript类的定义和引用
    详解C中volatile关键字
    ACM HDU 1040 As Easy As A+B
    ACM POJ 1753Flip Game
    ACM HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/arxive/p/5257123.html
Copyright © 2020-2023  润新知