- 博客(56)
- 资源 (4)
- 收藏
- 关注
原创 [机器视觉]basler相机使用SN编号打开相机和采集
在项目中是用basler相机采图时,一般用的比较多的遍历相机,然后使用CreateFirstDevice这个函数获取相机,有些时候可能需要同时连接多个相机,这里一般是遍历后,再循环打开相机,根据打开相机的SN号确定是否是自己需要的相机,但如果设备同时连接了多个相机,我们只使用其中的1到2个,这时遍历打开相机就会出现相机占用情况,而且相机数量多的时候,遍历相机和打开相机也比较耗时。
2024-10-12 18:30:00 411
原创 [Qt学习笔记] 解决QTextEdit数据过多UI卡死问题
在项目中使用QTextEdit显示软件的日志信息,由于在连续输出日志信息,刚开始QTextEdit显示没什么问题,长时间就会出现UI界面卡死,内存占用变高。晚上查了说QTextEdit的append函数如果不释放会累计增加内存,包括QPlainTextEdit的appendPlainText函数也有这个问题。这里需要定期或定量去清空内容。
2024-10-11 19:30:00 394
原创 Qt中解决编译中文乱码和编译失败的问题
QT5中在cpp中使用#pragma execution_character_set(“utf-8”)解决中文乱码,不过这里要求该源代码必须保存成带Bom的utf-8格式,这也是有些在网上下载的代码,加上这句源代码后还是乱码,我的操作是修改cpp中几个中文字符后,重新保存后再重新编译就可以了。相当于将之前不是bom的代码保存utf bom格式。此方法需要在每一个涉及中文的cpp前添加这段指令。
2024-06-10 17:14:30 604
原创 [Qt学习笔记]Qtxlsx在Qt下的配置和调用
Qt操作Excel文件一般有QAxObject和QtXlsx两种方法,前者需要调用wps或office组件进行读写操作,具有一定的局限性,下面列出两种方法的优缺点对比QAxObject:优点:支持xls和xlsx等版本。office组件读写速度快;缺点:需要安装office或wps,安装了福昕阅读器不能使用;QtXlsx:优点:第三方库,不依赖office,操作方便可独立调用;缺点:不支持xls格式;
2024-06-02 22:03:38 638
原创 [Halcon学习笔记]Halcon窗口进行等比例显示图像
在使用Halcon加载图像时,点击Halcon的适应窗口,图像都会按照窗口大小对图像进行拉伸后显示,实际项目中,需要等比例显示图像,体现图像原本的尺寸细节和效果,特别是在Qt或VS中,需要方便调节,这里记录一下等比例显示图像的原理和实现方法。实际显示的时候,不仅要考虑图像的纵横比,还要考虑控件窗口的纵横比,如果图像的宽高比大于窗口的宽高比,这个时候就把图像的宽度方向靠近边缘,高度方向上下预留空白。如果图像的宽高比小于窗口的宽高比,这个时候就把图像的高度方向靠近边缘,宽度方向左右预留空白。
2024-05-28 11:39:27 735
原创 [OpenCV学习笔记]Qt+OpenCV实现图像灰度反转、对数变换和伽马变换
灰度反转是一种线性变换,是将某个范围的灰度值映射到另一个范围内,一般是通过灰度的对调,突出想要查看的灰度区间。SL−1−rr⊂0L−1SL−1−rr⊂0L−1])比如在以下胸片图像中提取白色絮状形状,在黑色背景下看的不太明显,就可以使用灰度反转增强图像的可视化效果。i++)j++)
2024-03-30 10:29:37 1554
原创 [Qt学习笔记]Release后的exe程序在新的电脑上出现“找不到MSVCP140.dll”的错误
我们在打包程序的时候一般都会把相关依赖库整体打包,这样程序在新的电脑和环境下就不需要再去配置对应的环境,但是有时候新程序在一台新的电脑运行时会出现“找不到MSVCP140.dll”这种错误,其原因就是在新电脑的操作系统中缺少一些不要的依赖库,需要找齐这些库放到新电脑的系统中。所以需要安装对应的依赖库。
2024-03-20 09:06:08 362
原创 [Qt学习笔记]QPushButton点击事件和长按事件使用功能
在使用QPushButton中,一般都在UI界面直接右键添加槽函数进入代码,很少去分析每个触发事件的功能,比如需要通过长按按钮来触发相应的操作,这里点击信号不可以达到预期的效果。
2024-03-20 09:04:47 1428
原创 [Halcon学习笔记]在Qt上实现Halcon窗口的字体设置颜色设置等功能
在之前介绍过Halcon窗口显示文字字体的尺寸和样式,具体详细介绍可回看当时介绍的设定方法最近在使用过程中发现一个问题,在不同模式下设置的不同;如果要设置斜体,加粗等效果,Release下要严格按照SetFont的先后次序进行设定,不能缺省,不然会出现报错的情况。
2024-03-20 09:00:17 717
原创 [Qt学习笔记]Qt使用MFC编译生成dll库在无编程环境电脑出现无法加载dll的问题
在项目实践中,使用Qt调用了一个vs创建的dll库,在本机上编译和release后的exe可以加载对应的dll文件,将exe拷贝到有vs编程环境的电脑上也可以加载对应的dll文件,但在无编程环境的电脑上执行exe就会出现无法加载dll的bug。这里重新学习一下MFC这种生成dll设定运行库的原理。编译选项包含静态链接的lib说明/MD_MT、_DLLMSVCRT.lib多线程、Release、DLL版本的运行时库/MDd多线程、Debug、DLL版本的运行时库/MT_MT。
2024-03-20 08:59:04 457
原创 [Qt学习笔记]Qt线程间数据通讯及数据共享
第一种方法,使用全局变量或全局函数,在其他类或线程中调用,这是各种编程语言中都通用的方法,但全局变量长时间占用内存,影响程序空间使用率,且全局变量修改影响整个程序,程序的安全性无法保证,一般尽量少用全局变量或函数,这种方法不展开介绍了。
2024-03-20 08:57:03 2081
原创 [Halcon例程]Blob分析之check_blister.hdev
本例程主要展示了Halcon实现胶囊药丸的自动检测,目的是检测自动封装的药丸是否有漏装和错装。第一张图像作为参考图像,用来定位后续图像的胶囊的胶囊仓。用Blob分析分割的药丸并对进行分类这个实例中,用的最关键的东西是基于灰度的识别,操作。主要算子:仿射变换算子 :vector_angle_to_rigid,affine_trans_image形态学算子 :closing_rectangle1,opening_circle,shape_trans。
2024-03-20 08:55:32 395
原创 [Qt学习笔记]Qt实现自定义控件SwitchButton开关按钮
在项目UI中使用较多的打开/关闭的开关按钮,一般都是找图片去做效果,比如说如下的图像来表征打开或关闭。如果想要控件有打开/关闭的动画效果或比较好的视觉效果,这里就可以使用自定义控件,使用Painter来绘制控件。
2024-03-20 08:51:51 1747 7
原创 [Halcon学习笔记]实现多边形绘图后自动闭合成斜矩形
在Halcon联合开发项目中,需要在Halcon窗口上绘制不同形状的ROI,但是Halcon自带的绘图操作不太方便,操作时交互感官较差,所以可以通过绘制多边形,通过点来绘制多边形,最后通过闭合算子将绘框形成闭合的xld轮廓或Region,最终得到我们想要的ROI区域。
2024-03-20 00:18:44 463
原创 [Qt学习笔记]Qt实现控件的折叠收起和展开的功能
本次学习的内容主要是实现控件的折叠和展开,类似抽屉控件,目前Qt自带的控件QToolBox具有这个功能,但是一次只能展开一个,所以针对自己的需求可以自己写一个类似的功能,这里实现的方法比较多,其实原理也比较简单,就是点一次隐藏,再点一次显示的效果。
2024-03-20 00:10:04 2764
原创 [Halcon学习笔记]机器视觉缺陷检测常用方法对比总结
目前机器视觉中缺陷检测主要分为以下几种:1 Blob分析+特征提取2 模板匹配(定位)+查分3 光度立体4 特征训练5 测量拟合6 频域+空间域7 深度学习以后的笔记中再详细介绍各种缺陷检测方法使用的场景和实际案例。
2024-03-20 00:08:18 695
原创 [Qt学习笔记]Qt实现鼠标点击或移动时改变鼠标的样式以及自定义鼠标样式
使用函数QCursor::QCursor(const QBitmap & bitmap, const QBitmap & mask, int hotX = -1, int hotY = -1),需要准备自定义鼠标样式的图片和自定义鼠标样式的掩码图片,hotX和hotY设置鼠标热点。甚至可以生成与背景具有反差效果的鼠标样式。//背景透明的png格式图片//-1 -1表示鼠标热点在中心点//设置自定义的鼠标样式。
2024-03-20 00:06:35 1495
原创 [Halcon学习笔记]标定常用的Halcon标定板规格及说明
大多数标定的要求都是以实心圆或方格来作为标志点,所以一般的标定板为棋盘格或矩阵圆点图,高精度的相机标定过程中,大多是以比较明确的特征点来作为参考,所以通过识别标定板的圆形,拟合出精确的中心位置,然后再通过已知的标定模板参数来消除投影造成的形心误差。
2024-03-20 00:05:37 801
原创 [Qt学习笔记]QGraphicsView实现背景的绘制和前景图像的绘制
然后在Scene类中重新定义drawBackGround函数,这里直接使用重写的函数来实现自己改造背景的功能这里定义了一个间距为10像素的网格线路,
2024-03-20 00:04:24 1067
原创 [Qt学习笔记]Qt下使用Halcon实现采图时自动对焦的功能(Brenner梯度法)
在机器视觉的开发中,现在有很多通过电机去做相机的聚焦调节,对比手工调节,自动调节效果更好,而且其也能满足设备自动的需求,尤其在一些高倍成像的环境下应用场景更广泛,图像清晰度是衡量图像质量的一个重要的指标,手动调焦的过程是通过人为去判定图像的清晰度,调节镜头的焦距,使得图像从模糊到清洗,再到模糊的过程,确定清洗度的峰值,自动调焦就是通过算法对采集的每一张图像的清晰度进行评价,最终给出图像清晰的峰值,从而确定调焦获取的焦距最佳。常见的图像清晰度评价一般都是基于梯度的方法,本文主要介绍Brenner梯度法。
2024-03-20 00:02:52 969
原创 工业相机采图方式、图像格式(BYTE、HObject和Mat)转换
使用Halcon采图助手进行采图比较适合新手,没有太大的编程量,也可以用于项目前期的方案制定,图像处理评估等;第一种采图方法的适用性更广,可以满足不同项目的开发需求。
2024-03-19 23:53:07 1764
原创 [Qt学习笔记]QT下获取Halcon图形窗口鼠标事件并执行相应操作
在视觉项目开发过程中碰到了需要使用Halcon进行图像算法开发的需求,估计很多视觉工程师都用到过Halcon软件开发库,但是完成Halcon算法开发后就会遇到一个问题,就是图像的显示、读写、UI交互等问题,由于Halcon具有特殊的图像文件格式HObject和数据格式HTuple,所以说需要格式转换后才能实现相对应的操作,不过Halcon本身也有比较实用的显示、界面交互的功能,所以如何在C++或QT下使用这些功能成为了接下来需要去研究和实践的工作
2024-03-19 23:48:44 1624
原创 Git小乌龟安装及使用教程
安装过程直接默认下一步,直到安装结束。安装结束后重启一下。安装完成后,在文件夹空白处右键出现以下几个标识,说明安装成功。
2024-03-19 23:43:14 1219
原创 [Halcon算子]Halcon算子之XLD(一)
返回XLD轮廓的坐标;XLD对象Contours;坐标值Row和Col;返回一个XLD多边形的数据(以线形式);多边形XLD对象Polygon;直线的起点坐标、终点坐标、长度和角度;返回一个XLD平行数据(以线形式);两平行线XLD对象Parallels;Row1, Col1, Length1, Phi1, 两平行线第一条两端点坐标与线长,线方向;Row2, Col2, Length2, Phi2两平行线第二条两端点坐标与线长,线方向;返回一个XLD多边形的数据;多边形XLD对象Polygon;
2024-03-19 23:19:08 2194
原创 [Qt项目实战]Qt实现美松标签打印机标签二维码打印(QR混排模式+页打印模式)
如果使用USB接口,需要在电脑上安装美松打印机的驱动程序,否则会出现初始化失败的错误。QR码混排打印时,最好是将QR码打印在左侧,因为打印QR码设置距离左边距最大值为27mm。美松打印机目前字体大小:字符是1224和917,汉字是1616和2424,放大只能按照倍数放大,比较难去调整到一个合适的字体大小,一般使用默认大小。美松提供的是纯C的动态库,输入的字符串是char类型,所以在Qt调用时需要将QString先转成char,并注意编码格式,否则会出现中文乱码情况。
2024-03-19 23:13:26 942 1
原创 [Qt学习笔记]Qt设置编译动态库时自动生成带d结尾的dll库
在Qt生成动态链接库dll时,有时需要同时编译debug和release下的库,debug的库以d结尾,只需要在pro文件中添加设置生成的TARGET字段格式就行了。
2024-03-19 23:08:01 400
原创 [Qt学习笔记]Qt鼠标事件mouseMoveEvent实时获取图像的坐标和像素值
上一篇介绍了使用OpenCV的setMouseCallback回调函数实现获取鼠标点击点的图像坐标和像素值,本篇使用鼠标事件mouseMoveEvent函数来实现实时获取鼠标的坐标和对应图像点的像素值,并将结果实时显示在label控件上。
2024-03-19 22:36:10 1533
原创 [Qt学习笔记]Qt实现程序单例运行,再次点击后弹出界面
在实际工程项目中,软件在打开情况下,再次打开软件会出现打开多个软件界面的情况,进而找出与下位机交互的错误,对于工程项目是不允许此类情况出现,所以在软件运行时必须保证该软件是单例运行,在运行状况下再次打开时进行提示或弹出之前的软件界面。
2024-03-08 17:09:31 868
原创 [Qt学习笔记]Qt实现界面和程序中的动态翻译
动态翻译主要是要重写changeEvent事件,以便实时获取语言变更和更新。源代码附在最后,以便后续学习使用。
2023-12-29 23:22:19 1101
原创 Qt5.9.6+VS2015开发环境配置
以上组件可根据自己需求进行选择安装,如果你只在windows 64位下使用,选择msvc2015 64-bit,如果你需要在Linux或Android下使用,选择对应组件即可。运行Qt安装软件qt-opensource-windows-x86-5.9.6 .exe,进行安装,安装最好在有网络的情况下,避免出现错误。运行VS2015安装软件,编程语言选择Visual C++,如果还使用其他编程语言,按照自己需求进行选择,其他选项按照默认设置就行。然后安装就一直下一步就行,安装位置按照自己需求进行修改。
2023-08-24 09:18:53 792
原创 QT5实现程序修改系统时间
QT本身不提供时间设置的函数,实现修改系统时间使用windows的native API函数SetSystemTime函数,因此头文件里需要加入#include <Windows.h>以上的代码运行结果会比当前时间少八个小时,是因为GetSystemTime()获取的是格林尼治时间;-目前实现程序进行系统时间的修改,如果想实现程序自我对时,就需要把系统自带的Internet时间同步设置关闭。目前电脑的系统时间一般是自动与time.windows.com进行在线同步,每次同步的时间周期为一周。
2023-08-24 09:17:30 1219
Qt+Halcon实现的区域生长算法(RegionGrowing)
2022-09-26
视觉检测中HObject、Mat和QImage图像格式转换源码(Halcon和OpenCV)
2022-05-19
Qt实现USB多摄像头的识别、显示、截图、分辨率帧率设置等功能源码
2022-03-23
Balser工业相机采图及相机参数设置Qt实现源码
2022-03-21
工业相机采图Balser工业相机采图及相机参数设置Qt实现源码
2022-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人