QT_QML_OPenCV
文章平均质量分 74
记录一些关于使用qt开发opencv的知识点
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
山间点烟雨
这个作者很懒,什么都没留下…
展开
-
12. openCV在QT环境中利用zBar开发库实现二维码内容识别
本篇博客仅记录如何使用zBar库进行二维码内容的识别,其中牵扯到的一些其它知识点,比如二维码区域检测、zBar库开发环境配置等可以参考本专栏的其它相关博客,此篇博客不再赘述。博客中代码功能:手动选择一张包含二维码的图片,会将检测到的二维码区域单独显示出来,并将二维码中包含的信息显示到一个button上。图像当作参数传入,进行信息提取,注意:使用。经过上述操作即可识别出二维码中的信息!是最终需要用来识别的二维码图像。检测时,待检测的图像必须转换为。原创 2024-01-23 18:00:15 · 453 阅读 · 0 评论 -
11. 在Opencv中利用仿射变换处理二维码变形问题
在前一篇博客中记录了如何在一张图片中单独提取出二维码区域,考虑一种情况:如果二维码图片拍摄时并非是正对着二维码拍摄的,那么整张图片相对来说就发生了一定的倾斜角度,最终截取到的二维码也是有一定的变形的。针对形状发生变化的二维码,如果想把它调整归正,可以使用仿射变换对图像就行矫正,某种程度上可以提高二维码最终的识别精度。原创 2024-01-09 11:04:30 · 793 阅读 · 0 评论 -
9. linux系统下在Qt中配置Zbar条形码/二维码扫描开发环境
虽然现阶段OpenCV的高版本也有提供二维码扫描的功能,但是其在速度和精准度方面都远低于Zbar,不过Zbar的精准识别是依赖于一张图片中二维码的区域要占用40%-100%的空间,这样标准的二维码对于Zbar的识别是非常精准的。而实际应用中,拍摄一张带有二维码的图像进行识别,往往这张图像会包含一些其他的额外信息,所以就需要对原始含有二维码的图像进行处理,只保留其中的二维码区域,而图像处理方面OpenCV是强项,所以可以将两者结合开发,功能实现精准扫描的功能需求。,本篇博客以此种方式进行配置。原创 2024-01-08 18:00:13 · 549 阅读 · 0 评论 -
10. Opencv检测并截取图中二维码
在二维码扫描功能开发中,使用相机扫描图片时,往往图片中的信息比较多样,可能会造成二维码检测失败的问题。:根据二维码的特征 --> 三个角点都有一个 “回” 字形图案,可以借助这三个 ‘‘回’’ 字形图案定位到二维码的具体位置,然后使用OpenCV中的 “抠图” 功能,根据坐标值把二维图从原图中抠出来。字形的大致位置,接下来就是要使用上面的处理结果图再次进行预处理,查找轮廓等方式,寻找包围这三个。本博客中先是检测得到所有的轮廓,然后在找到所有的父轮廓,根据父轮廓的索引号将。字形轮廓绘制出来,得到。原创 2023-12-28 15:21:17 · 912 阅读 · 1 评论 -
8.linux系统使用Qt开发Android配置opencv for android开发环境
在linux系统中使用qt开发android程序时,如果需要使用到opencv,是需要配置开发环境的。前面一篇文章记录了在linux中使用cmake工具配置opencv的方式,这种方式并不适合开发andrroid,在opencv的官网上有专门用于开发android的opencv包,下载之后按照本篇博客记录的方式即可实现环境配置。目前opencv的最新版本已经在4.X以上了,但是高版本的opencv在结合QT使用时会存在一些编译报错的问题,低版本的会更稳定一些。原创 2023-12-21 11:39:19 · 630 阅读 · 0 评论 -
7. QT环境下使用OPenCV(对图像本身的操作--二值化、混合、合并拼接)
混合是将两张尺寸大小一致的图像叠加在一起,只是每张图像的透明度会不一样,从而达到两张图像混合在一起的效果,注意两张图像混合在一起显示的前提是要保证两张图像的尺寸大小一致。此操作和混合图像不同,合并图像类似于拼接图像,可以将两张或者多张图像拼接到一起进行显示,最常见的就是多路监控系统同时显示在一张屏幕上,或者多宫格图像拼接等。原创 2023-07-18 10:25:30 · 270 阅读 · 0 评论 -
6. QT环境下使用OPenCV(利用鼠标实现图像的ROI区域选择)
如果需要在一张图像上绘制多个矩形框,那么就需要时刻保存上一帧绘制过的带有矩形框的图像,需要添加一个新的全局变量rectedImage,并更改回调函数中的内容,添加一层判断,当第一次绘制后,给rectedImage进行赋值,如果rectedImage为空时就在原始图像上绘制,如果不为空,就在rectedImage图像上绘制。因为要在图像上实现鼠标框选的动作,那么必然需要记录鼠标左键按下和松开时的坐标,而且当矩形框绘制到图像上之后需要不停的刷新窗口上的图像帧(后面文章会讲到),所以需要在。原创 2023-07-06 16:23:01 · 1091 阅读 · 0 评论 -
5. QT环境下使用OPenCV(基于TCP实现摄像头图像数据的多线程传输)
在QT的多线程开发当中,有两种方式可以创建子线程,一种是继承QThread这个类,然后重新其run()函数,需要在子线程中执行的代码放置在run()函数内部,在启动线程时只需要调用其start()方法即可,但这种方式在结合tcp通信一起使用时容易出现错误,会报错说socket通信不在同一个线程内。另一种创建子线程的方式是将自定义的类继承自QObject,然后使用moveToThread()函数将其移动到创建的子线程管理器中,转移之后,此自定义类中的所有功能代码在运行时都会在子线程中进行。原创 2023-06-25 17:11:08 · 1758 阅读 · 1 评论 -
4. QT环境下使用OPenCV(视频或摄像头读取显示在QLabel控件上)
关于视频的读取,实际上也是从视频中将每一帧图像加载后,显示到QLabel控件上,每一帧的读取使用定时器进行控制,即在间隔时间内一帧一帧的去读取图像帧,如果不使用定时器进行操作,可能会出现问题。在用opencv处理图像时,图像的来源大部分情况下是从视频中读取过来的,视频可以是本地保存的视频,也可以是本地摄像头或者网络摄像头实时拍摄的视频。opencv读取视频。原创 2023-06-21 16:50:53 · 1602 阅读 · 1 评论 -
3. QT环境下使用OPenCV(Mat对象的常用操作--复制与克隆、创建空白图像、像素遍历与运算)
在原图像的基础上,使用**Scalar()**这个函数为原图像的每个像素值改变数据,本质上是遍历图像的每一个像素点,然后对每一个点的像素值添加Scalar中的值。可以先获取图像的宽度和高度,然后使用两层循环遍历获取每一个像素点的值,对其进行更改。一般情况下是使用OPenCV读取图像,但有时也会自己创建图像,此时需要使用。类似于创建一个小的矩阵,在图像做卷积操作时,可以利用这个方式创建一些卷积核。在创建全1或者全0图像矩阵后,可能需要对其中的数值重新赋值,此时可以使用。原创 2023-06-21 10:46:00 · 266 阅读 · 0 评论 -
3. QT环境下使用OPenCV操作图像数据(读取、保存、尺寸调节、色彩变换等)
如果在读取图像数据时,图像的路径填写错误或者其它问题导致读取的图像数据为空时,是无所对图像进行操作,当使用。当加载一张较大的图像时,希望能够按照设定的尺寸对图像数据进行缩放,此时可以使用这个函数。函数,在QT框架下,可以不使用这个函数。本文的操作都是将读取到的图像数据绘制到一个。在对图像进行各种操作就该之后,如果需要对操作后的图像进行保存,可以使用这个函数。有时希望将彩色图像转换为灰色图像或者其它色彩空间,可以使用此函数。图像加载完成后,如果需要显示出来,需要使用。原创 2023-06-19 16:18:59 · 1516 阅读 · 0 评论 -
2. windows系统下在QT中配置OPenCV开发环境
在Windows系统中配置相对简单,不需要对下载的源码进行编译,在官网上下载的OPenCV可以直接使用,本文系统版本为win10,opencv是最新版本4.7.0。打开选择时按照下图进行选择:注意选择第一个,第二个会自动生成。更改完成后,即可在项目中使用opencv进行开发了。选择完成后点击下一步即可。打开opencv的官网。原创 2023-06-16 12:43:37 · 1640 阅读 · 0 评论 -
1. linux系统下在QT中配置OPenCV开发环境
在Linux系统下配置OpenCV的开发环境,需要在官网上下载源码,并使用CMake工具对源码进行编译,与在Windows系统中配置相比复杂许多,本文linux系统为linux minit,opencv是最新版本4.7.0,不过对于linux和opencv的版本要求行不高。此项更改为自己OPenCV想要安装的路径内,默认是安装在**/usr/local。在打开的文件中添加下图中的一行代码,路径是opencv默认的安装路径。按钮,弹出下图界面,默认选择即可,然后点击。原创 2023-06-15 19:16:04 · 2430 阅读 · 0 评论