- 博客(139)
- 资源 (8)
- 收藏
- 关注
原创 2.5 openCv -- 使用 OpenCV 合并(混合)两张图片
通过在 00 到 11 之间变化 𝛼α,此运算符可用于在两张图片或视频之间执行时间交叉溶解,这在幻灯片展示和电影制作中常见(很酷吧?由于我们要添加 𝑠𝑟𝑐1src1 和 𝑠𝑟𝑐2src2,它们必须具有相同的尺寸(宽度和高度)和类型。从我们之前的教程中,我们已经了解了一些像素运算符。我们需要两个源图片 (𝑠𝑟𝑐1src1 和 𝑠𝑟𝑐2src2)。我们使用的图片如下:LinuxLogo.jpg 和 WindowsLogo.jpg。在这个例子中,𝛾γ 是上面代码中的参数 𝛾γ。
2024-07-25 10:46:10
1170
1
原创 2.4 openCv -- 对图像操作
处理图像 从文件加载图像:Cpp如果读取的是 JPG 文件,默认会创建一个三通道的图像。如果你需要灰度图像,可以使用:Cpp文件的格式由其内容(前几个字节)决定。要将图像保存到文件中:Cpp文件的格式由其扩展名确定。使用和可以从内存中读取或写入图像,而不是从文件中读取或写入。
2024-07-25 10:22:24
1335
原创 2.3 openCv -- 对矩阵执行掩码操作
具体而言,掩模操作通常涉及将掩模矩阵与图像的局部区域对齐,然后将掩模矩阵中的每个值与其覆盖的像素值相乘,最后将所有这些乘积相加以得出新的像素值。使用掩模的方式是将掩模矩阵的中心(在上述例子中由0-0索引标记)放置在你想要计算的像素上,然后将像素值与重叠的矩阵值相乘后求和。当掩模应用在图像上时,它会在图像的每个像素位置上滑动,每次都将掩模中的系数与相应的像素值相乘,然后将所有乘积相加以得到新的像素值。这是一个相当大的差异。这里的中心系数(5)比周围的系数大,这意味着中心像素的权重更大,这有助于增强对比度。
2024-07-24 13:53:23
1457
原创 2.2 openCv -- 如何使用 OpenCV 进行图像扫描、查找表操作及时间测量
与高效的访问方式相比,在发布模式下使用此方法的唯一区别在于,对于图像的每个元素,你都会为所使用的 C。如果可能,我们应该避免使用这些昂贵的操作,而改用更便宜的操作,如几个减法、加法,或者在最好的情况下,简单的赋值。此外,注意我们对上述操作的输入值数量是有限的。我们的测试案例程序(以及下面的代码示例)将完成以下操作:读取作为命令行参数传递的图像(它可以是彩色或灰度),并使用给定的命令行参数整数值应用色彩缩减。因此,对于较大的图像,预先计算所有可能的值并在赋值时仅进行赋值是有意义的,通过使用查找表来实现。
2024-07-24 13:34:57
944
原创 2.1 openCv -- Mat
因此,OpenCV 2.0引入了一个新的C++接口,提供了一种新的做事方式,意味着你不必再为内存管理操心,使你的代码更加精炼(写得更少,做得更多)。RGB是最常见的,因为我们的视觉系统使用类似的方式来感知颜色,但请记住,OpenCV的标准显示系统使用BGR颜色空间来组合颜色(红色和蓝色通道的位置被交换)。然而,它们的头部分是不同的。Mat基本上是一个类,具有两部分数据:矩阵头(包含诸如矩阵大小、存储方法、矩阵存储地址等信息)和指向包含像素值的矩阵的指针(根据选择的存储方法,它可以具有任何维度)。
2024-07-23 15:32:37
801
原创 1.2 openCv -- 安装
在Windows上安装中文版OpenCV实际上与安装英文版的步骤相同,因为OpenCV本身并不包含语言包,它是一个跨平台的计算机视觉库,其功能和API是统一的,不受语言环境影响。不过,为了方便理解文档和教程,你可能希望使用中文资源。
2024-07-23 14:46:45
25
原创 1.1 openCv -- 介绍
2.x API,这是一个本质上基于C++的API,与基于C的OpenCV 1.x API(C API已被弃用,并且自从OpenCV 2.4版本起不再使用“C”编译器进行测试)相对。OpenCV具有模块化结构,意味着该包包含了多个共享或静态库。文档的后续章节描述了每个模块的功能。但在开始之前,请确保熟悉库中广泛使用的通用API概念。
2024-07-22 13:47:10
223
原创 openCv -- 优势
OpenCV的目的是实现一个易于使用且高效的计算机视觉框架,支持实时视觉应用。:OpenCV在多个领域有广泛应用,包括但不限于机器人技术、医学成像、安全监控、虚拟现实(VR)、增强现实(AR)、自动驾驶汽车、工业自动化和人机交互。:它包含了大量的图像处理和计算机视觉算法,例如特征检测、物体识别、图像分割、运动分析与跟踪、3D重建、光流估计、照相机校准和增强现实等。:OpenCV主要使用C++编写,但同时也提供了Python、Java、C#和其他语言的接口,这使得它对不同背景的开发者都非常友好。
2024-07-22 10:33:47
379
原创 AI 与机器视觉:一场变革性的融合
例如,在工业生产中,AI 驱动的机器视觉系统可以快速而准确地识别出产品的瑕疵,大大提高了质量检测的效率和准确性,避免了人工检测可能出现的疏漏和疲劳导致的误判。随着技术的不断进步和完善,相信 AI 对机器视觉的帮助将会越发凸显,为我们创造出更多的奇迹和可能。综上所述,AI在机器视觉中的应用不仅提高了识别的准确性和效率,还扩展了机器视觉系统的应用领域,使其在工业自动化、医疗诊断、交通监控等多个领域发挥重要作用。在当今科技的舞台上,AI 与机器视觉的结合正绽放出耀眼的光芒,为各个领域带来了深刻的变革与突破。
2024-06-17 09:44:41
156
原创 vs2022专业版永久密钥
vs2022专业版永久密钥:Visual Studio 2022 Enterprise:VHF9H-NXBBB-638P6-6JHCY-88JWHVisual Studio 2022 Professional:TD244-P4NB7-YQ6XK-Y8MMM-YWV2J
2024-06-06 22:51:12
7419
3
原创 Halcon计算点到直线的垂线方程
但是此算子不会返回具体的垂点坐标。当我们希望显示垂线的时候是需要知道垂点坐标,才可以绘制该直线的。一、我们都知道,点到直线最短距离就是垂线。Halcon也有现成的算子可以计算点到直线的距离。二、计算垂线方程代码。
2024-06-04 19:24:13
157
原创 视觉检测实战项目——九点标定
整个步骤:先识别圆,提取圆心坐标;然后根据对应的机械坐标计算转换矩阵;最后读取测试图片,提取圆心坐标,转换到机械坐标,计算圆心距。已知 9 个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理即最小二乘拟合。假定图像坐标、机械坐标如下,Matlab 测试一下。校正图,圆直径 1.5cm,圆心距 2cm。准备两张图,一张用来校正,一张用来测试。测试图,圆直径 2cm,圆心距 3cm。结果如下,识别的圆心坐标会有一定误差。图像坐标系和机械坐标定义如下。
2024-05-21 15:19:36
600
原创 HALCON 最新版本安装教程
可从互联网上获取到,参考:https://blog.csdn.net/qq_18620653/article/details/120033443。②进入HALCON-22.11.0.0-x64-win64文件夹,右键点击【som.exe】文件,选择以【管理员身份运行】。链接:https://pan.baidu.com/s/1M3zI_Qha-Ywho-21k-kCnA。③进入下载区域(downloads)页面,点击下载 HALCON,选择需要的版本下载。②组件选择:选择安装包,建议选择全部。
2024-04-29 16:56:16
1200
原创 Halcon与VisionMaster对比
而VisionMaster则是一款相对较新的机器视觉软件,它的使用场景通常集中在简单或中等复杂度的视觉任务,如简单的尺寸测量、缺陷检测、条码和2D码识别等。相比之下,VisionMaster可能在算法优化和处理速度方面略逊一筹,尽管它也提供了基本的多线程处理能力,但在高负载或大规模数据处理方面可能不如Halcon强大。作为一个经验丰富的机器视觉算法工程师,我对于机器视觉软件的评价会基于多年的实践经验和对不同软件功能的深入了解。1. 强大的算法库:拥有广泛的图像处理和分析算法,能够处理复杂的视觉任务。
2024-03-29 15:10:04
620
原创 常用机器视觉软件对比
---evision机器视觉软件开发包所有代码都经过mmx指令的优化,处理速度非常快,感觉和Intel的IPP有的一拼(当然还是比IPP稍逊一筹,但是毕竟这是Intel自家开发的),但却提供了比IPP多得多的机器视觉功能,例如OCR,OCV,基于图像比对的图像质量检测,Barcode和MatrixCode识别。并不是每个软件都非常厉害。----Opencv-好处是开源免费图像处理库。1、美国 Opencv--------------由美国Intel公司建立,如今由Willow Garage提供支持。
2024-03-29 15:03:57
545
原创 工业相机自动对焦如何实现?机器视觉的自动对焦开发与应用前景如何
在模型训练的时候要注意不能以整张图片resize后进行训练,因为图像本身以细粒度来评判清晰度。这里以图像梯度为例,可以看到曲线存在一个明显的全局最优值,即最清晰图像。a.基于图像拍摄的主要目标,采集不同物距下的图像,本人使用的100倍光学放大物镜,因此采集物距步长为0.3μm。主动对焦法:通过传感器测量成像系统中的实际物距从而实现对焦,目前手机上的红外传感器为。被动对焦:通过分析图像梯度、对比度等特征获取当前帧图像质量,从而驱动电机进行。b.使用不同的图像清晰度评价函数来得到曲线,目前常见基于梯度、频域、
2024-03-25 14:51:24
394
原创 亚像素Sub Pixel概述
由于矩是基于积分的运算, 因此矩也被认为是对噪声不敏感的稳定特征,同时矩还具有被测目标的矩特性在成像前后 保持不变的性质。而两个像素之间有4.5um的距离,在宏观上可以看作是连在一起的,但在微观上它们之间还有无限更小的东西存在,是两个物理像素之间的“像素”,这些更小的东西就称为“亚像素”。【注】:亚像素定位算法的前提条件是:目标不是孤立的单个像素点,而必须是由一定灰度分布和形状分布的一系列像素点组成。利用图像中某一目标的几何特征得到亚像素的测量数据,一般是规则形状的目标,如圆,三角形、正方形等形状。
2024-03-25 13:41:47
235
原创 MessageBox.Show显示到最顶层
显示可包含文本、按钮和符号(通知并指示用户)的消息框。MFC的MessageBox的MB_TOPMOST属性可以直接设置。Winform的MessageBox没有直接设置的参数。显示具有指定文本、标题、按钮、图标、默认按钮和选项的消息框。
2024-03-07 10:58:47
1836
原创 python实现opencv(清华镜像)
方法一:可在Scripts文件夹下新建txt文本,复制一张图片,重命名为1.jpg(也可另寻地址和图片)Selenium 镜像: https://npmmirror.com/mirrors/selenium/electron 镜像: https://npmmirror.com/mirrors/electron/alinode 镜像: https://npmmirror.com/mirrors/alinode/Node.js 镜像: https://npmmirror.com/mirrors/node/
2024-02-02 19:08:16
1864
1
原创 光学系统的核心--分辨率
对工业定焦镜头而言,多数产品的最佳工作距离是300mm-600mm,即此工作距离下,镜头分辨率表现最佳,其他工作距离,分辨率表现可能会下降。“像元”“像素”“分辨率”这几个相机相关的术语,业界目前没有十分明确的定义,有些行业还会有显示分辨率,图像分辨率等等不同的概念,比较容易引起混淆。在相机分辨率越来越高的时代背景下,成像系统分辨率的“压力”也就落在了镜头上,所以更高分辨率(空间频率)的镜头在成像系统中的作用越来越重要。平时我们讨论的相机与镜头之间的关系,其实是相机,镜头,系统三者之间的关系。
2024-01-26 10:35:39
1112
原创 深度学习电脑配置有什么要求?
的快速发展,深度学习已经成为了许多领域的重要工具。然而,深度学习的应用需要强大的计算能力,因此对于想要进行深度学习的用户来说,选择一台合适的电脑是必不可少的。本文将重点介绍深度学习电脑配置的要求。
2024-01-25 13:43:02
3247
原创 硬件之相机选型
当然,对于很弱的信号,曝光也不能无限增加,因为随着曝光时间的增加,噪音也会积累, 曝光补偿就是增加拍摄时的曝光量。帧率是用于测量显示帧数的量度。在相机分辨率的选型上,要根据我们的项目需求而定,并不一定是分辨率越高就越好,分辨率高带来的图像数据量就大,后期的算法处理复杂度就高,而且一般分辨率大的相机,帧率一般都不会太高。在拍摄高速运动物体的场合,选择帧曝光的相机后,还需要计算相机的曝光时间,以使图像不产生拖影,理论的计算原则是:运动物体在相机芯片上所成的像,在曝光时间内,移动的距离不超过一个像元尺寸。
2024-01-24 17:08:35
1618
原创 C# 使用多线程,关闭窗体时,退出所有线程
this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出; Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题; System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干
2024-01-11 15:22:16
1906
转载 使用橡皮擦涂抹功能实现减少模板匹配特征
前者等待鼠标按下,后者无需等待直接监听鼠标并且都是一次触发一次返回,这样一来实现上面的功能就要挠一挠脑壳了。我的Qt作品(5)使用Qt+Halcon实现模板匹配;支持ROI框选/橡皮擦功能。但是文末附上了链接,那个是本人使用的Qt开发的涂抹工具。1、按住鼠标左键拖动鼠标进行擦除工作,松开鼠标停止擦除。get_mbutton 和 get_mposition。2、继续按住鼠标左键重复功能1,鼠标右键退出。
2024-01-11 10:44:31
139
原创 线扫相机品牌汇总(国外+国内)
该篇文章主要总结了一下国内外和线扫相机相关的公司。目前使用的主流线扫相机大多还是国外品牌,国内品牌大多也不能生产线扫相机中的核心部件——感光芯片。虽然目前国内外的技术差距还是比较大的,但是我们也在不断提高自我知识产权的数量,不断创新,不断追赶。
2024-01-08 14:47:21
1779
原创 一个CV算法工程师在技术方面的小反思
仅仅根据自己比较了解的识别,检测,分割方面的一些总结。比较通用的算法侧优化是backbone(resnet resnext resnest efficientNet等大模型,mobilenet hrnet shufflenet等系列小模型),Neck(fpn, bi-fpn,panet等各种FPN层),比较实用的网络优化(deform_conv,se-net,cbam等attention结构),head优化(主要是target设计的方方面面。
2023-12-10 13:20:25
1103
原创 halcon视觉缺陷检测常用的6种方法
1、频域结合空间,其实频域就是用波动观点看世界,看问题角度变了,光经过镜头其实发生的是傅立叶变换,此思想在傅立叶光学上有所阐述,就像光经棱镜分光,而光进入计算机内部,进行了采样和量化,然后我们用函数f(x,y)来表示这些数据描述。2、频率特征是图像的灰度变化特征,低频特征是灰度变化不明显,例如图像整体轮廓,高频特征是图像灰度变化剧烈,如图像边缘和噪声。四面打光,合成图像,求取梯度图型,然后Halcon里的光度立体法也是这方面的应用,关键的算子就是photometric_stereo。二、频域+空间结合法。
2023-12-10 13:18:37
1021
原创 工业相机与镜头选型方法(含实例)
若1个是1百万像素,另1个是3百万像素,当清晰度相同(精度均为20um/pixel),第1个相机的FOV是20mm×20mm=400平方mm,第二个相机的FOV是1200平方mm,拍摄生产线上同样数量的目标,假设第1个相机要拍摄30个图像,第2个相机则只需拍摄10个图像就可以了。这里只介绍几种常用的接口类型。镜头接口只要可跟相机接口匹配安装或可通过外加转换口匹配安装就可以了,其一般的接口是C口跟CS口,这两者主要的区别是图像传感器与镜头之间的距离不同这两者类型的接口没有细分的,其C口的大小全都都一样,;
2023-12-10 13:17:17
1296
原创 机器视觉工程师反复调试的原因是什么?
1.每种编程语言自身都有bug,当你感觉对的时候,编程语言的体系根本不允许这样子去实现,你要在他规则下去写程序,但是它的这个规则往往就是最大的bug,规则本身就紊乱,所以编程者理解它规则的同时,还要去按照这个规则走下去,那么走下去的流程,每个人都不一样,因为每一个人理解的都不一样。3.代码健壮度,同上,你不可能考虑到所有状况,因为很多状况出现的问题都不严重,无非是重试或者警告,那么有些状况在必须处理的前提下,你也是同样容易被忽略的。晕了,找啊找,找了半天,定位到bug,各种方法尝试修改。
2023-12-10 13:12:20
437
原创 张正友相机标定法原理与实现
相机标定指建立相机图像像素位置与场景点位置之间的关系,根据相机成像模型,由特征点在图像中坐标与世界坐标的对应关系,求解相机模型的参数。相机需要标定的模型参数包括内部参数和外部参数。针孔相机成像原理其实就是利用投影将真实的三维世界坐标转换到二维的相机坐标上去,其模型示意图如下图所示:从图中我们可以看出,在世界坐标中的一条直线上的点在相机上只呈现出了一个点,其中发生了非常大的变化,同时也损失和很多重要的信息,这正是我们3D重建、目标检测与识别领域的重点和难点。
2023-12-10 13:06:53
1866
原创 【MySql】Navicat 连接数据库出现1251 - Client does not support authentication protocol 问题的解决方法
2、通过 cd 语句进入 mysql 的安装目录bin目录下笔(我使用的 MySQL 是8.0.33版本的,mysql server安装的默认路径为:F:\ruanjianinstalll\mysql\mysql-8.0.33-winx64\bin。5、在 Navicat 中重新连接,出现连接成功即可(测试使用Navicat for mysql)。3、输入mysql -uroot -p和数据库密码进入 MySQL 控制台。1、以管理员身份运行 CMD 窗口。其实这是一个简单的权限与安全问题。
2023-10-27 23:06:19
4297
2
原创 终于有人讲透了什么是机器视觉!
若是VGA输出或USB输出,在显示器上观察,则还依赖于显示器的分辨率,工业相机的分辨率再高,显示器分辨率不够,也是没有意义的;高效散热装置,大大提高光源的使用寿命。3、工业相机的图像传感器是逐行扫描的,而普通的相机的图像传感器是隔行扫描的, 逐行扫描的图像传感器生产工艺比较复杂,成品率低,出货量少,世界上只有少数公司能够提供这类产品,例如Dalsa、Sony,而且价格昂贵。1、工业相机的性能稳定可靠易于安装,相机结构紧凑结实不易损坏,连续工作时间长,可在较差的环境下使用,一般的数码相机是做不到这些的。
2023-08-24 09:38:26
769
原创 相机成像之3A算法的综述
首先对图像进行划分,求每个区域的Cr和Cb分量的平均值和方差,根据求出来的这些值筛选出系统认为的白色像素点,然后根据像素亮度值从大到小筛选出前10%左右的白点作为参考白点。(2)最大RGB算法:基于图像中的最亮点通常是由光滑表面反射光源的实际颜色产生的,首先计算图像中像素点RGB三通道各自的最大值,然后计算红色和蓝色通道的增益,最后根据得到的增益修正图像中所有像素的R和B通道值。通俗地说,白平衡就是针对不同色温条件下,通过调整消除偏色,使拍摄出来的图像更接近人眼的视觉习惯。如有不妥,请联系删除。
2023-08-23 09:32:41
1471
原创 理想的光学系统
由于像方的出射光线GkF`和OkF`分别和物方的入射光线A1E1和FO1相共轭,因此光线GkF`和OkF`的交点F`的共轭点应该是光线AE和FO1的交点,显然它位于左方无限远的光轴上,所以F`是物方无限远轴上点的像。在图4中,轴上物点A发出的光线AM与光轴交角为U,交物方主面于点M,入射高度为h,AM的共轭光线M`A`交像方主面于点M',与光轴交角为U`,由直角三角形AMH和A`M`H`,得。焦距值的正、负是以相应的主点为原点来确定的,如果由主点到相应焦点的方向与光线的传播方向一致,则焦距为正,反之为负。
2023-08-20 10:52:05
209
原创 为什么总是闹离职的员工不走,平时不吭声的员工却突然离开?
1、这类人一般能力有限还眼高手低,高难度的活干不了,难度低的活又觉得干得没意思,有时候让帮忙做点什么吧,就像受了什么天大的委屈一样,结果委屈还不是只有受着,辞职了还指不定能不能找上工作。4、职场里,每个人都有自己的小算盘,别天真的以为别人的想法和你一样,你要走,有的人是真的觉得可惜,但也有人是在看你笑话,嘴上同情你,但心里却巴不得你赶紧走。3、离职是自己的事,不是一群人的事,经常看见职场中有人因为自己想离职了,就想拉着一帮人一起跟着自己离职,让自己的离开给公司造成压力,其实这种想法非常幼稚。
2023-08-16 16:37:33
133
原创 大牛分析相机镜头光学中疑难问题
对于每一个摄影师来说,绝大多数情况下,他都希望把ISO固定在100,因为这可以获得最纯净的画面,但这几乎是不可能的。但是对于佳能“百微”和尼康“105微”这样的微距镜头来说,最大放大比例是1倍,此时对焦距离就很近了,此时相对于焦距来说,1/u就不可以忽略了,这时算出来的实际的透镜焦点到光心的距离就不等于之前的焦距了。当然,对于实际的镜头来说,镜头内部的镜片是很复杂的,可能有几片甚至十几片镜片,有些镜片的材质还较为昂贵,例如萤石,它们的主要作用其实就是改善镜头的光学素质,校正各种球差、彗差、色散、畸变等等。
2023-08-16 16:25:16
1809
原创 工业相机的检测原理课件(建议收藏)
本课件为各位工程师详细介绍了工业相机的视觉检测原理 ,旨在为工程师调试工业相机的视觉检测原理时提供理论性指导。
2023-08-09 07:30:00
181
openCvCsharp.zip
2020-01-17
getPosAndPaint.zip
2019-08-14
Python高性能编程
2019-04-19
学生成绩系统
2014-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人