栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

OpenCV的Mat格式和IplImage格式的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCV的Mat格式和IplImage格式的使用

最近频繁地在使用OpenCV的Mat图像格式和IplImage图像格式,所以记录一下他们的一些使用区别。

首先贴出来互相转换的方法: Mat转IplImage如下:
	//浅拷贝
	Mat mat_Image = imshow("1.bmp");
	IplImage image = cvIplImage(mat_Image);
    //深拷贝
    IplImage* temp;
    //temp = cvCreateImage(cvSize(mat_Image.rows, mat_Image.cols), 8, 1);//灰度图
    temp = cvCloneImage(&image);
IplImage转Mat如下:
    IplImage* src=cvLoadImage("temp.jpg");
    Mat ImgTemp;
    ImgTemp=cvarrToMat(src);//浅拷贝
    Mat Img = ImgTemp.clone();//利用clone()再次深拷贝
加载的方法的区别
	//Mat的加载方法
	//第一个参数代表图片路径和名称,第二个参数代表0-》灰度加载、1-》彩色加载
	Mat mat = imread("1.bmp", 0);

	//IplImage的加载方法
	IPlImage *Image = cvLoadImage("1.bmp",0);
设置窗口大小和显示
	//Mat的图片只能用imshow()来显示
	Mat mat = imread("1.bmp", 0);
    namedWindow("mat",0);  //第二个参数 0-》窗口可以自定义大小、1-》自适应图片大小
    resizeWindow("mat",800,600);
    imshow("mat", mat);

	//IplImage的图片只能用cvShowImage()来显示
	IPlImage *Image = cvLoadImage("1.bmp",0);
	cvNamedWindow("Image", 0);
    cvResizeWindow("Image", cvSize(1200, 900));
    cvShowImage("Image", Image);
	
	
有坑记录 cvNamedWindow,cvShowImage与多线程的问题

当在子线程中调用cvShowImage,会出现窗口无响应无显示的现象,无论是否在子线程中提前调用cvNamedWindow。

而在主线程中提前调用cvNamedWindow,后在子线程中调用cvShowImage则显示正常。

若在子线程调用cvShowImage前关闭cvNamedWindow产生的窗口,同样会造成窗口无响应无显示。
参考链接:https://blog.csdn.net/qwertyuj/article/details/7406456

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015513.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号