本文主要介绍了QT中对Mat类的一些操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、类型转换
opencv在QT中的应用通常会涉及到这三者的转换,即Mat、QImage、QPixmap。
下面分别给出了
- Mat转QImage
- QImage转Mat
- Mat转QPixmap
1️⃣:Mat转QImage
2️⃣:QImage转Mat
3️⃣:Mat转QPixmap
二、保存至数据库
我这里是直接将Mat类型的数据以二进制数据流的方式保存到数据库中,有些文章是将文件名及其所在的路径保存到数据库中,这个还是要好看项目需求,个人而言,我这个要更复杂一点。
演示效果如下:
1️⃣:基础界面
2️⃣:磨皮处理
3️⃣:数据库中的数据
4️⃣:核心代码
注意: 创建数据表的时候,字段的类型,一定要满足数据的大小,比方说保存图片一般使用blob相关的类型,其中blob最大为64k,mediumblob最大为16M。
思路,先捕获ui控件(我用于显示图片的控件是QLabel)中的数据,然后进行数据库操作。具体步骤如下:
数据类型:Image —>Mat。
然后再将Mat类型保存到byte数组中,再上传到数据库。(此时有小伙伴可能就要问了,为什么不直接从Image类型转byte数组呢?当然可以,不过我们饶了个弯子也是想让大家学会如何将Mat类型转成byte数组)
上传数据库,用户名+图片数据(这个看自身的需求)
准备数据库查询语句query,用法如下图所示
验证阶段,取回图片,然后显示在右侧的QLabel中,因为我代码中取回的是用户id为33的图片数据,所以显示的是一个水瓶。
到此这篇关于QT中对Mat类的一些操作详解的文章就介绍到这了,更多相关QT Mat操作内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!