Halcon/OpenCV学习
文章平均质量分 68
针对视觉测量和检测的基本算法,对Halcon常用算子和对应OpenCV进行介绍、拓展和封装;并辅助实际案例进行介绍和实现,最后使用Qt实现算法调用。
coder_Alaric
这个作者很懒,什么都没留下…
展开
-
[Halcon学习笔记]Halcon窗口进行等比例显示图像
在使用Halcon加载图像时,点击Halcon的适应窗口,图像都会按照窗口大小对图像进行拉伸后显示,实际项目中,需要等比例显示图像,体现图像原本的尺寸细节和效果,特别是在Qt或VS中,需要方便调节,这里记录一下等比例显示图像的原理和实现方法。实际显示的时候,不仅要考虑图像的纵横比,还要考虑控件窗口的纵横比,如果图像的宽高比大于窗口的宽高比,这个时候就把图像的宽度方向靠近边缘,高度方向上下预留空白。如果图像的宽高比小于窗口的宽高比,这个时候就把图像的高度方向靠近边缘,宽度方向左右预留空白。原创 2024-05-28 11:39:27 · 769 阅读 · 0 评论 -
[OpenCV学习笔记]Qt+OpenCV实现图像灰度反转、对数变换和伽马变换
灰度反转是一种线性变换,是将某个范围的灰度值映射到另一个范围内,一般是通过灰度的对调,突出想要查看的灰度区间。SL−1−rr⊂0L−1SL−1−rr⊂0L−1])比如在以下胸片图像中提取白色絮状形状,在黑色背景下看的不太明显,就可以使用灰度反转增强图像的可视化效果。i++)j++)原创 2024-03-30 10:29:37 · 1565 阅读 · 0 评论 -
[Halcon学习笔记]在Qt上实现Halcon窗口的字体设置颜色设置等功能
在之前介绍过Halcon窗口显示文字字体的尺寸和样式,具体详细介绍可回看当时介绍的设定方法最近在使用过程中发现一个问题,在不同模式下设置的不同;如果要设置斜体,加粗等效果,Release下要严格按照SetFont的先后次序进行设定,不能缺省,不然会出现报错的情况。原创 2024-03-20 09:00:17 · 735 阅读 · 0 评论 -
[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 · 400 阅读 · 0 评论 -
[Halcon学习笔记]实现多边形绘图后自动闭合成斜矩形
在Halcon联合开发项目中,需要在Halcon窗口上绘制不同形状的ROI,但是Halcon自带的绘图操作不太方便,操作时交互感官较差,所以可以通过绘制多边形,通过点来绘制多边形,最后通过闭合算子将绘框形成闭合的xld轮廓或Region,最终得到我们想要的ROI区域。原创 2024-03-20 00:18:44 · 480 阅读 · 0 评论 -
[Halcon学习笔记]机器视觉缺陷检测常用方法对比总结
目前机器视觉中缺陷检测主要分为以下几种:1 Blob分析+特征提取2 模板匹配(定位)+查分3 光度立体4 特征训练5 测量拟合6 频域+空间域7 深度学习以后的笔记中再详细介绍各种缺陷检测方法使用的场景和实际案例。原创 2024-03-20 00:08:18 · 701 阅读 · 0 评论 -
[Halcon学习笔记]标定常用的Halcon标定板规格及说明
大多数标定的要求都是以实心圆或方格来作为标志点,所以一般的标定板为棋盘格或矩阵圆点图,高精度的相机标定过程中,大多是以比较明确的特征点来作为参考,所以通过识别标定板的圆形,拟合出精确的中心位置,然后再通过已知的标定模板参数来消除投影造成的形心误差。原创 2024-03-20 00:05:37 · 819 阅读 · 0 评论 -
[Qt学习笔记]Qt下使用Halcon实现采图时自动对焦的功能(Brenner梯度法)
在机器视觉的开发中,现在有很多通过电机去做相机的聚焦调节,对比手工调节,自动调节效果更好,而且其也能满足设备自动的需求,尤其在一些高倍成像的环境下应用场景更广泛,图像清晰度是衡量图像质量的一个重要的指标,手动调焦的过程是通过人为去判定图像的清晰度,调节镜头的焦距,使得图像从模糊到清洗,再到模糊的过程,确定清洗度的峰值,自动调焦就是通过算法对采集的每一张图像的清晰度进行评价,最终给出图像清晰的峰值,从而确定调焦获取的焦距最佳。常见的图像清晰度评价一般都是基于梯度的方法,本文主要介绍Brenner梯度法。原创 2024-03-20 00:02:52 · 991 阅读 · 0 评论 -
[Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改
养成良好的查资料习惯,可以实现事半功倍。原创 2024-03-19 23:56:28 · 1029 阅读 · 0 评论 -
工业相机采图方式、图像格式(BYTE、HObject和Mat)转换
使用Halcon采图助手进行采图比较适合新手,没有太大的编程量,也可以用于项目前期的方案制定,图像处理评估等;第一种采图方法的适用性更广,可以满足不同项目的开发需求。原创 2024-03-19 23:53:07 · 1786 阅读 · 0 评论 -
[Qt学习笔记]QT下获取Halcon图形窗口鼠标事件并执行相应操作
在视觉项目开发过程中碰到了需要使用Halcon进行图像算法开发的需求,估计很多视觉工程师都用到过Halcon软件开发库,但是完成Halcon算法开发后就会遇到一个问题,就是图像的显示、读写、UI交互等问题,由于Halcon具有特殊的图像文件格式HObject和数据格式HTuple,所以说需要格式转换后才能实现相对应的操作,不过Halcon本身也有比较实用的显示、界面交互的功能,所以如何在C++或QT下使用这些功能成为了接下来需要去研究和实践的工作原创 2024-03-19 23:48:44 · 1661 阅读 · 0 评论 -
[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 · 2266 阅读 · 0 评论 -
[OpenCV学习笔记]获取鼠标处图像的坐标和像素值
实现获取鼠标点击处的图像的坐标和像素值,灰度图显示其灰度值,RGB图显示rgb的值。原创 2024-03-18 22:29:00 · 847 阅读 · 0 评论 -
[Qt学习笔记]Qt鼠标事件mouseMoveEvent实时获取图像的坐标和像素值
上一篇介绍了使用OpenCV的setMouseCallback回调函数实现获取鼠标点击点的图像坐标和像素值,本篇使用鼠标事件mouseMoveEvent函数来实现实时获取鼠标的坐标和对应图像点的像素值,并将结果实时显示在label控件上。原创 2024-03-19 22:36:10 · 1578 阅读 · 0 评论 -
[Qt学习笔记]基于Qt+opencv的视频播放器
基于Qt+opencv的视频播放器原创 2023-08-23 22:10:16 · 924 阅读 · 1 评论 -
[视觉实战案例]Qt+Halcon实现区域生长算法(坐标种子点+灰度值种子点)
区域生长算法:将按照事先定义的生长准则讲一个像素或子区域逐步聚合成一个完整独立的区域的过程。对于图像上某个区域R,p为区域R上指定的一个像素点,称作种子点,按照规定的生长准则逐步将与种子点z一定邻域内符合相似性判据的像素合并成一个种子群以备下一阶段的生长,这样不断的进行循环生长直到满足生长停止条件为止,从而完成了对感兴趣区域由一个种子点生长为一个独立连通区域的过程。实现步骤1、在图像区域中选取一个像素点作为一个种子点(x,y)。原创 2022-09-26 11:04:47 · 2299 阅读 · 0 评论 -
[Halcon例程]光流法分割运动中的汽车optical_flow.hdev
目录前言1、原理介绍2、例程注释3、核心算子解析4、运行结果前言运动物体的常用方法就是帧差法和光流法,之前以介绍了视频的两帧差法去跟踪视频中的运动物体,今天借助Halcon的例程来介绍一下光流法的原理和使用方法。1、原理介绍光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。研究光流场目的就是为了从图片序列中近似得.原创 2022-05-16 17:38:36 · 606 阅读 · 0 评论 -
[视觉实战案例]Qt实现8位灰度图叠加通道转换成24位三通道图像
目录前言1、OpenCV实现单通道转三通道2、判断图像通道数进行转换3、程序实现代码4、实现效果5、源码学习前言在项目中,可能一些输入的图像要求是RGB的图像格式,但是手边只有单通道的黑白相机进行采图,这时就需要将8位的单通道图像转换成24位的三通道图像,一般都是使用3个8位图像叠加成三通道图像。1、OpenCV实现单通道转三通道首先创建一个CV_8UC3的三通道图像,图像大小尺寸与单通道图像尺寸一致,然后将3份单通道图像叠加融合填入刚创建的三通道图像。Mat Widget::convertTo.原创 2022-05-15 12:50:31 · 1666 阅读 · 0 评论 -
[Halcon例程学习]增强指纹纹理的coherence_enhancing_diff
通过使用coherence_enhancing_diff算子来实现断开指纹纹理线的增强连接。保持图像细节特征的同时减弱噪声。原创 2022-05-09 16:12:18 · 884 阅读 · 0 评论 -
[视觉实战案例]Qt+OpenCV实现USB摄像头监测移动物体并录制视频功能(帧差法)
目录1、背景介绍2、使用OpenCV的帧差法实现运动物体监测2.1 帧差法介绍2.2 帧差法部分实现代码3、在Qt平台下使用opencv对运动物体进行监测4、界面效果展示5、总结1、背景介绍最近手边的零食总是莫名其妙的减少,为了抓到一个元凶来帮我续零食,就想着使用手边的usb摄像头来实现一个动态物体监测和保存视频的功能,不过这里使用最简单的帧差法来实现物体的运动监测。2、使用OpenCV的帧差法实现运动物体监测开发环境Qt5.9 + OpenCV硬件Logitech摄像头2.1 帧差法介原创 2022-05-08 23:15:20 · 3769 阅读 · 5 评论 -
[视觉实战案例]Qt下BYTE、QImage、HObject、Mat等图像格式的转换和图像显示方法
Qt下BYTE、QImage、HObject、Mat等图像格式的转换和图像显示方法原创 2022-03-23 22:54:00 · 6501 阅读 · 2 评论 -
Qt使用键盘事件实现ESC键退出Halcon的绘图流程
针对Halcon在Qt或c++下开发时绘图等待无法正常取消的情况,依据Halcon的绘图终止的要求,在Qt上使用事件过滤器和事件重写等函数来模拟Halcon绘图取消的功能。原创 2021-12-17 09:23:56 · 1283 阅读 · 0 评论