OpenCV--常见图片格式转换与深浅拷贝

 2023-09-07 阅读 14 评论 0

摘要://派生关系CvArr -> CvMat -> Ipllmage,相互之间可以强制转换,其方法主要有cvLoadImage(),cvShowImage(),cvSaveImage() //Mat是一套专注矩阵的方法,其主要函数有imread(),imshow(),imwrite() 读入图片格式为Mat格式,代码略。 Mat frame;

//派生关系CvArr -> CvMat -> Ipllmage,相互之间可以强制转换,其方法主要有cvLoadImage(),cvShowImage(),cvSaveImage()
//Mat是一套专注矩阵的方法,其主要函数有imread(),imshow(),imwrite()

       读入图片格式为Mat格式,代码略。

        Mat frame;

        //Mat==>IplImage
        IplImage* frame1 = &IplImage(frame);
        IplImage* frame1d = cvCloneImage(frame1);//IplImage深拷贝
        cvShowImage("IplImage", frame1d);


        //IplImage==>Mat
        Mat frame2 = cvarrToMat(frame1);
        Mat frame2d = frame2.clone();//Mat深拷贝
        imshow("CvarrToMat", frame2d);

jpeg怎么转换成jpg格式,
        //Mat==>IplImage==>CvArr
        IplImage frame3 = IplImage(frame2);//中间需要IplImage转接一下
        CvArr* arr = (CvArr*)&frame3;
        cvShowImage("CvArr", arr);


        //CvArr==> CvMat==> Ipllmage
        cvShowImage("CvArr==>CvMat", (CvMat*)arr);
        cvShowImage("CvArr==>CvMat==>IplImage", (IplImage*)((CvMat*)arr));
        cvShowImage("CvArr==>IplImage", (IplImage*)arr);

 

        以下内容来自:https://blog.csdn.net/wuxiaoyao12/article/details/7305848

        // IplImage*==> BYTE*

        BYTE* data= img->imageData;

webp格式转换成jpg。        //BYTE*==> IplImage*

        img= cvCreateImageHeader(cvSize(width,height),depth,channels);

        cvSetData(img,data,step);

        //首先由cvCreateImageHeader()创建IplImage图像头,制定图像的尺寸,深度和通道数;

        //然后由cvSetData()根据BYTE*图像数据指针设置IplImage图像头的数据数据,

        //其中step指定该IplImage图像每行占的字节数,对于1通道的IPL_DEPTH_8U图像,step可以等于width。
 

opencv 保存图片。 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/13907.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息