自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

手写不期而遇的博客

热爱技术,热爱智能化设备

  • 博客(87)
  • 资源 (4)
  • 收藏
  • 关注

原创 机器视觉--光源打光技巧

同轴光的光源平行,完全凸显物体水平面亮度,倒角部分(边缘或划痕纹理部分不明显),优势在于:完全消除被检物体表面反光的影响,可应用于金属检测;光源控制器先曝光,工业相机再曝光,则可能存在延时不同步,需要设置光源控制器延时几十us;一般,频闪光源控制器的曝光时间最大是1000us,因此,相机曝光时间也不超过1000us,如果觉得亮度仍然不够,只能采用光源常亮的模式;至于什么是异色,谨记,'红橙黄绿青蓝’的顺序,颜色相近,即打白,相距较远,即打黑。总结的结果就是,高角度:顶端亮,倒角暗,顶端暗,倒角亮。

2024-08-30 22:19:12 172

原创 Halcon如何实现线线距离

在halcon中,并没有线线距离的相关算子,实际上,如果是两条直线,在不完全平行的情况下,最终会相交,距离为0。因此,在halcon中,应该处理的是线段与线段之间的距离。这里给出的两种确定线段距离的方法。

2024-05-30 14:38:36 396

原创 Halcon形态学处理的一些技巧

对区域的形态学处理而言,有很多技巧,学习好这些算子,并理解,可以很灵活的应对项目开发过程中的一些特殊情况。

2024-05-30 10:44:20 84 1

原创 视觉测量为什么要使用边缘而不是直接灰度阈值分割?

如果阈值选定错误,由于从前景灰度值到背景灰度值是平滑过渡的,那么提取出来的物体将通常会变得更大或者更小。当光照改变时,这个问题尤其严重,因为此时要求阔值必须非常准确地适应改变后的照明情况。描述物体边界的鲁棒性最好的方法是将边界视为图像中的边缘。------Halcon作者书籍《机器视觉算法与应用》使用视觉测量系统,最重要的是精度和稳定性,边缘衡量的是图像对比度数值,因此位置相对变化小。

2024-05-30 10:22:55 196

原创 Halcon机器视觉实战----提取水平方向缝隙区域

如何从一块区域内找到水平方向的缝隙区域(不是高斯线条,从图像中提取,而是从区域内提取,考虑到了区域所在的方向);***动态阈值分割***显示过滤后的区域****区域的开闭运算*开运算,看起来两个细微连接的区域分开了,不会扩展区域边界外部部分,只会更改区域内部的连接处,和腐蚀不一样*闭运算,看起来两个细微连接的区域结合了,不会扩展区域边界外部部分,只会更改区域内部的连接处,和膨胀不一样***这个算子的思路是改变滤波核形状,水平方向上扩展了一个像素,竖直方向上扩展了十个像素。

2024-02-07 12:33:15 208

原创 CMakeLists.txt基础指令与cmake-gui生成VS项目的步骤

本博客主要介绍cmake的基本指令,同时,很多使用Visual Studio小白从Gitbub下载项目源码后,看到CMakeLists.txt,不知道如何使用Visual Studio编译源码;针对以上问题,做一下简单操作与解释,方便小白入门,大佬就没必要继续看啦…

2023-11-17 21:31:14 2172

原创 Qt封装的Halcon显示控件,支持ROI绘制

目前机器视觉ROI交互控件在C#上做的比较多,而Qt上做的比较少,根据作者VS+Qt+Halcon——显示图片,实现鼠标缩放、移动图片的文章,我在显示和移动控件的基础上,增加了ROI设置功能,并封装成了一个独立的Qt控件。

2023-11-04 00:16:44 1047

原创 Matlab/C++源码实现RGB通道与HSV通道的转换(效果对比Halcon)

HSV通道是指图像处理中的一种颜色模型,它由色调(Hue)、饱和度(Saturation)和明度(Value)三个通道组成。色调表示颜色的种类,饱和度表示颜色的纯度或鲜艳程度,明度表示颜色的亮度。HSV通道常用于图像处理中的颜色分析、颜色过滤、颜色调整等任务,它相对于其他颜色模型具有更直观和易于调节的特点,因此被广泛应用于计算机视觉和图像处理的领域

2023-10-18 22:18:17 1349

原创 Windows编程dll基本知识点

本篇博客主要是记录windows系统下dll开发的相关基本知识点,并使用相关分析工具分析,有利于初学者学习,更是为开发者查缺补漏;

2023-09-17 21:59:08 792

原创 使用Easy Chm制作chm文档步骤

软件发布后需要相应的文档说明,CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。因为使用方便,形式多样也常被采用作为电子书的格式;制作类似的chm文档可以使用Easy Chm软件;

2023-08-27 20:49:14 4378

原创 使用windeployqt和InstallShield打包发布Qt软件的流程

Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程;

2023-08-27 18:40:54 1022

原创 【五一创作】VS+Qt主界面内嵌自定义控件的四种方法以及不同自定义控件数据交互

在Qt界面开发过程中,一个主界面或者主窗口看成是各个控件排列组合后的集合,对于一些项目而言,有些常用的控件可以封装成自己想要的控件样式并且复用,比如说,log显示控件,图像/视频显示控件等,可以将常用的控件代码封装起来,以便下次复用,内嵌在不同的主界面内。这里总结了常见的四种方法供大家参考;新建一个自定义控件项目一般自定义控件,继承于QWidget;ui文件为另建一个主界面项目,主界面ui文件如图所示,在主界面内添加一个QFrame,在Frame内添加一个布局控件(添加widget控件)

2023-05-03 23:42:51 4009 3

原创 Qt内存管理及泄露后定位到内存泄漏位置的方法

Qt使用对象父子关系进行内存管理。vld.ini是VLD的配置文本,默认读取的是安装目录下的vld.ini 文件,当exe所在目录下也有vld.ini文件时会优先读取这份配置。这里是自己在源码中新建的label控件,执行了QLabel的构造函数,没有指定父对象,需要自己手动释放内存,不释放会有内存泄漏。默认读取的是安装目录下的vld.ini 文件,当exe所在目录下也有vld.ini文件时会优先读取这份配置。这里是自己在源码中新建的label控件,没有指定父对象,需要自己手动释放内存,不释放会有内存泄漏。

2023-04-20 22:58:56 1830 2

原创 计算机颜色学---CIE 色度图以及饱和度处理

了解颜色相关理论与成像知识,对于深入了解视觉相关算法与ISP算法而言十分重要,了解颜色理论,离不开CIE色度图;

2023-04-11 22:11:57 5091 1

原创 Qt软件崩溃定位到源代码位置的方法

如果写好了软件拿给别人用,当软件出现BUG时,则无法定位到出错位置,因此需要定位到错误位置,记录log文件;将CrashDebugUtilx64.dll这个文件,然后放到可执行程序文件夹下。source line是刚才错误的源文件下错误的行数。在exe同级目录下会出现CrashLog文件夹。source file可以定位到错误的源文件。后面的错误定位也是第一行位置导致的。一个dmp文件和log文本文档。在代码调试过程中可以定位到。可以看到刚才的源代码位置是。打开log文档可以看到。

2023-04-06 22:23:07 2565 3

原创 海康工业相机SDK连接demo,Qt界面显示

在机器视觉开发过程中,经常使用工业相机采集图像,以下采用海康机器人提供的SDK开发demo,使用语言C++,界面显示使用的Qt。SDK来自MVS 3.1版本中附属的Development文件夹。

2023-04-05 20:23:27 2411 3

原创 VS+Qt资源管理器与icon图标设置,菜单栏与工具栏在QtCreator中设置的流程记录

当拖入一个控件之后,比如说这里,拖入一个Label控件,可以从属性编辑器内看到类之间的继承关系;(2)把当前项目的qrc文件添加进来(相当于VS虽然有了qrc文件,但由于路径中可能含有中文,需要自己手动添加资源文件)在工具栏内添加选项,需要使用动作编辑器(如果QtCreator内没有出现动作编辑器,视图—动作编辑器)菜单栏,工具栏是QAction类对象,不同于其余控件,没有clicked信号,信号是triggered。,可以先随便输入两个数字,再选中,直接在动作编辑器内编辑。这样编辑就可以出现中文了。

2023-03-26 23:31:44 2461

原创 ISP算法-----Gamma实现

通过Gamma,亮处的像素点发生非线性变换,如图所示,此时,亮处的对比度增加,暗处的对比度降低;从图像增强、图像处理的角度来说gamma,gamma可以提高或者降低亮/暗处的对比度。可以看到,经过Gamma变换后,亮处对比度提高,暗处对比度降低;从数学角度看gamma实际是一个值域范围(0,1)的指数运算;对于显示硬件而言,gamma是成像设备到显示设备的传递;经过Gamma=0.5变换后。

2023-03-16 22:53:04 640

原创 C++,Qt分别读写xml文件

C++常见的是使用tiny库读写,Qt使用自带的库读写;所以,使用tinyxml函数库中的类去读写根元素,text和属性。TiXmlDeclaration:用于xml文件的第一行,定义xml文件的声明操作;TiXmlDocument:定义一些基本的xml文件的基本操作,包含文件流;SaveFile:用于保存xml文件;LinkEndChild:将子元素嵌在父元素内,还可以将text加到元素内。TiXmlElement:不管根元素,元素和子元素,都用此类;TiXmlText:用于元素内的text的操作;

2023-03-04 23:44:53 3848

原创 Qt缩放显示图像(使用事件)

1.使用滚轮事件,实时更新源图像赋值给changeImage;2.设置一个缩放比例,通过判断滚轮的变化,实时更新缩放比例;

2023-03-04 22:27:19 1527

原创 关于Visual Studio C++项目属性设置的说明

帮助熟悉Visual Studio基本文件类型

2023-01-08 19:15:22 4550

原创 我的创作纪念日(创作整整一年啦!!)

刚开始读研的时候接触到了CSDN,并第一次注册了账号,那为什么想到在CSDN上记录博客呢?从初中开始我就养成了记笔记的习惯,读研期间开始做机器视觉相关的项目,三年下来,技术汇总成了五本笔记(手写的笔记,嘿嘿,有一些好的函数还写了下来,真的是小白做起来了),毕业之后开始工作,突然间想把之前记录的五本笔记的精华摘录出来,与大家共同讨论,因此才有了第一篇博客,标定的分类,不知不觉间,博客已经写了一年了。粉丝即将突破2000,文章阅读量突破十万,十分开心。 在记录博客的一年时间里,我从工作中也收获了很

2022-12-07 13:42:53 475 6

原创 Halcon机器视觉实战--分水岭分割+距离变换实现粘连物体图像分割

在盆地的最小值点,打一个洞,然后往盆地里面注水,并阻止两个盆地的水汇集,我们会在两个盆地的水汇集的时刻,在交接的边缘线上(即分水岭),建造大坝,来阻止两个盆地的水汇集成一个区域。,在图像处理中,区域本身代表的是图像的某一部分,其本身是不含灰度值的,很多时候,halcon的输入是图像和region一起的,这里只输入了region,没有输入图像,默认。在真实图像中,由于噪声点的影响或者其他干扰因素的存在,使用分水岭算法常常出现过度分割的现象,这是因为很多很小的局部极值点的存在,这样的分割效果是毫无作用的。

2022-11-25 23:08:57 2145

原创 C/C++ 结构体变量初始化的几种方法总结及内存排列(字节对齐)

最近看到一些别人的代码,对结构体的初始化使用了不同的语法,就决定对结构体的初始化方法做个探索,这里小小的记录一下。注意,没有初始化的结构体变量是不会输出的,比如//这样会报错error C4700这样会报错,因为编译器无法确定变量的值;

2022-11-21 21:13:50 2515 2

原创 C++常见十六进制数组转换char数组方法

C++在编写通讯协议解析过程中,通常需要对十六进制进行解析,经常用到位运算,同时结合unsigned char型数据或者char数组解析出自己想要的十进制数字,这里总结了一下常用的十六进制转换十进制或char数组的思路。

2022-11-10 09:38:04 4010 1

原创 Qt,C++中QString,string,char数组等常用格式转换大总结

在平时C++编写过程中,经常用到string类型与char类型,在Qt中显示数据等经常用到QString类型,因此在编写过程中经常需要格式转换,在这里对常用的字符,字符串类型转换做一个总结。先定义好常用的数据类型与变量//QByteArray初始化 unsigned char uchValue = 50;0 };

2022-11-10 09:28:04 4056

原创 Halcon中亚像素边缘,轮廓提取处理的各种方法

halcon中亚像素轮廓提取目前来看,提取亚像素轮廓有三种思路

2022-11-05 21:06:16 5847 3

原创 Halcon图像分割总结

在机器视觉项目当中,选定特定的图像区域,再此基础上做进一步处理,需要对图像区域分割,分割的方法有很多种,对于具体项目而言,不同的图像分割方法适用的场景不同,因此需要对特定的场景选择特定的图像分割方法,这里对图像区域分割方法做总结。全局阈值分割:在整幅图像中根据灰度阈值进行分割;提取灰度值范围在grayMin到grayMax的区域。可以直接在主程序窗口输入,也可以采用halcon提供的灰度直方图窗口拉拖最大最小值范围,可以实时的看到提取的区域的变化。选中阈值,可以实时看到选中的区域变化适合于直方图存

2022-11-05 20:41:04 4041

原创 Matlab,C/C++语言读取RAW图和保存RAW图

何为raw图?对于图像传感器而言,传感器数据每个像素点是RGGB等(排列方式有很多种),此时并不能看见颜色等信息,这种原始数据的图像,便是raw图。对于ISP算法工程师而言,查看RAW图十分重要,这里提供了一些查看RAW图的源代码。

2022-11-03 23:41:05 4322 5

原创 ISP算法----基本DPC算法实现代码

何为坏点?坏点指的是芯片加工过程中一些电子元器件的损坏,不会呈现图像的像素点,最终效果是图像上的黑点。坏点产生的原因:DPC算法的作用:Bayer模式下坏点矫正。基本POINT算法矫正原理:坏点往往是一个邻域内极亮或极暗的点,以5*5邻域为检测区域。附上Matlab读取RAW图的程序DPC效果

2022-11-03 23:00:30 1266

原创 Matlab底层源代码实现图像开闭操作(与Halcon效果一致)

图像灰度的开闭操作属于图像处理的基础,这里主要展示根据原理,来编写底层的函数代码。首先实现Matlab对图像区域的腐蚀与膨胀函数。

2022-10-26 19:06:02 1402

原创 ISP算法----AWB总结及源代码

AWB算法的必要性:对于彩色相机成像而言,AWB算法可以矫正颜色,视觉效果上看,颜色更符合人眼效果。光学原理:人眼对于颜色具有恒常性。从数学角度来看:所有AWB算法都是调节R,G,B三通道的增益值;所有手动调节白平衡便是人工输入三通道的增益值。

2022-09-10 22:41:22 3182 3

原创 Matlab底层源代码实现图像的中值滤波(用于消除图像上一些杂点)

Matlab底层源代码实现图像的中值滤波(用于消除图像上一些杂点)

2022-07-26 20:57:28 1840

原创 Matlab底层源码实现图像动态二值化

Matlab底层源代码实现图像动态二值化

2022-07-05 12:40:09 636

原创 Matlab底层算法实现直方图均衡

直方图均衡常用于图像处理预处理过程中,对于灰度的矫正具有十分优良的效果

2022-07-05 12:32:43 992 1

原创 Matlab底层源代码实现Halcon scale_image_max算子效果

Matlab底层源代码实现Halcon scale_image_max效果

2022-07-05 12:14:08 895

原创 Matlab底层源代码实现Halcon scale_image_range(可用于背景分割)

Matlab底层源代码实现Halcon scale_image_range效果(可用于背景分割)

2022-07-05 12:03:22 1252

原创 Matlab底层源码实现prewitt边缘检测和Sobel,Laplace边缘检测(实现效果与Halcon一致)

Matlab底层源代码实现Prewitt边缘检测和Sobel,Laplace边缘检测(实现效果与Halcon一致)

2022-07-05 10:48:28 1698

原创 Halcon常用图像预处理算子总结

Halcon常用图像预处理算子总结

2022-07-05 10:30:25 3617

原创 Matlab底层源代码实现图像腐蚀,膨胀操作(与Halcon效果一致)

Matlab底层源代码实现图像腐蚀,膨胀操作(与Halcon效果一致)

2022-07-05 10:26:45 4725

机器视觉软件开发常用图标库

机器视觉软件开发可使用的图标,涵盖通信,串口,测量,定位,检测等图标,适用于视觉软件开发工程师

2023-11-22

cmake示例项目+MyTinySTL资源

可以用于学习cmake指令,可以使用cmake-gui编译成项目文件

2023-11-17

图像处理/机器视觉领域+ROI交互控件+VS2015+Qt+Halcon12

可以在Qt项目内建立一个布局,然后布局内直接添加这个控件,便可以实现Halcon的ROI绘制了,本资源采用VS2015+Halcon12(halcon10导出)+Qt编写的demo程序,提供了控件源代码,并给出了如何调用这个控件的主界面程序;

2023-11-03

将源代码加入到项目中,可以实现非常好看的界面风格,还可换肤,源码参照其他博主

基于Qt实现的无边框源码,将源代码加入到项目中,可以实现非常好看的界面风格,还可换肤,源码参照其他博主

2023-05-14

Qt主界面内嵌自定义控件的四种方法以及不同控件数据交互

学习Qt基础,适合Qt开发新手学习。这里主要讲述了主界面与嵌入的自定义界面的四种方法。

2023-04-23

VLD内存泄漏检测编程文件,包含头文件,库文件,配置文件

C++编程可以定位到内存泄露的位置

2023-04-16

Qt/C++定位到错误源代码位置

内容概要:将此dll文件加载到exe同级目录下,显式加载dll,可以在软件使用中创建log文件定位到源代码中错误行

2023-04-06

海康工业相机SDK的Demo源代码C++版本

内容概要:海康工业相机的SDK库对应的软件源代码demo,基于Qt开发,并支持软件显示 适用人群:机器视觉工程师 使用场景:海康工业相机采图控制,C++代码编写

2023-04-04

图像处理实战图像资源,,,学习

图像处理实战图像资源,,,学习

2022-12-07

C++curl.rar

C++软件使用CURL库可以实现访问软件,工业软件连接MES

2021-12-07

halcon-socket程序.rar

只使用halcon便可以实现服务器端和客户端通信,内含halcon编写的服务器端和客户端

2021-12-06

Qt-C++-TCP通信.rar

将Qt使用的TCP通信都封装在函数内,服务器端和客户端可调用相关头文件即可使用

2021-12-06

视觉工程师-设备通信-串口通信.hdev

使用Halcon完成串口通信,实现设备间串口通信,适用于232,485串口

2021-12-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除