- 博客(150)
- 资源 (8)
- 收藏
- 关注
原创 C# 不同框架如何调用framework 和 net core
在 C# 中实现进程间通信(IPC,Inter-Process Communication)有多种方式,适用于不同场景。:支持多种协议(HTTP、TCP、Named Pipes),但需在 .NET Core 中使用替代方案(如 CoreWCF)。:适用于同一台机器上的进程通信,支持双向流式传输,性能较高。:高性能、跨语言、支持 HTTP/2,适合分布式系统。:适合大量数据共享,支持跨进程内存直接访问。(如 RabbitMQ)实现可靠的消息传递。:异步、解耦,适合分布式系统。:支持跨机器通信,灵活性高。
2025-03-17 23:30:00
612
原创 图像清晰度评价函数设计
例如,低对比度场景(如天空)方差天然较小,而高对比度模糊图像(如运动模糊)方差可能仍较高,导致多峰性。:Sobel算子对噪声敏感,高噪声场景下梯度幅值可能异常增大,模糊时噪声被平滑,导致评价函数值上升。:图像清晰度从低到高时,边缘的二阶导数响应逐渐增强,达到峰值后趋于稳定,呈现单峰特性。:清晰图像的梯度能量显著高于模糊图像,且能量随模糊程度单调变化,保证单峰性。:对图像整体结构敏感,不受光照均匀性影响,能准确反映不同场景的清晰度。:在纹理复杂的图像中表现优异,能快速响应清晰度变化,因此效果较好。
2025-03-05 22:00:00
177
原创 视觉供应商
机器人视觉和嵌入式视觉相机 - Allied Vision - Allied Vision杭州利珀科技股份有限公司基恩士(中国)有限公司 官方网站Gazer盖泽传感官方网站-纠偏传感器-边缘测量传感器-槽型传感器-Aligner晶圆校准器 寻边器 对准器 -OCR Wafer ID reader 晶圆ID读取器3D扫描和在线检测的全球引领者-3D视觉 | LMI Technologies上海贝特威自动化科技有限公司机器视觉成像专家--茉丽特科技(深圳)有限公司慕藤光Mvotem Optics-智能成像光学系
2025-02-12 13:35:13
167
原创 Mark点定位视觉解决方案
Mark点一般不会太大,如果只是针对单个Mark点的话,则不需要太高分辨率的工业相机,有130万左右的即可。可以考虑使用环形光源,如SHI-RL5260-W,同轴光源SHI-COL30-W这样的。单个Mark点的,可以考虑使用50mm的FA镜头,如M5018-MP2。如果是多个镜头,则需要考虑视野大小,可以考虑M2514-MP2、M1214-MP2这样的短焦FA镜头。如果视野较大,而两个Mark点离的比较近,而坐标转换的位置比较远的话,则需要考虑长距离下细小的角度变化,也会引起坐标的较大偏移。
2025-01-09 16:47:56
125
原创 视觉_光学原理
这遵循斯涅尔定律(Snell'sLaw):n₁sinθ₁=n₂sinθ₂,其中n₁和n₂分别是两种介质的折射率,θ₁和θ₂是入射角和折射角。光学原理是研究光的行为和性质的科学,它涵盖了广泛的物理现象,包括光的产生、传播、相互作用以及检测。-不同颜色(波长)的光在同一介质中的折射率不同,因此当白光通过棱镜等装置时,不同颜色的光会分散成彩虹般的光谱。-物质可以选择性地吸收某些波长的光,并可能重新发射出其他波长的光,这个过程与物质内部电子的状态有关。-在均匀介质中,光沿直线传播。
2025-01-07 15:47:21
307
原创 Halcon 显示异常
set_system( 'clip_region', 'false') *旋转 hom_mat2d_identity (HomMat2DIdentity1) hom_mat2d_rotate (HomMat2DIdentity1, rad( 90), 0, 0, HomMat2DRotate) affine_trans_region (Rectangle, RegionAffineTrans1, HomMat2DRotate, 'nearest_neighbor')
2025-01-04 21:39:20
143
原创 图像转换 VM与其他格式互转
VM SDK:流程输入图像(ImageBaseData_V2,VM4.2 SDK新增)、Group输入图像(ImageBaseData_V2,VM4.2 SDK新增)、图像源SDK输入图像(ImageBaseData)、模块输入图像(InputImageData)、流程输出图像(区分VM4.0 SDK和VM4.2 SDK的获取输出图像的方式,VM4.2获取流程图像的类型是ImageBaseData_V2);//imageBaseData_V2图像真正的缓存长度。//添加冗余位,变成4的倍数。
2024-12-31 15:19:58
322
原创 C#中AutoResetEvent
AutoResetEvent 类似于门锁,当某个线程请求进入一个被 AutoResetEvent 保护的区域时,如果事件处于未触发状态(即“关闭”状态),那么该线程将被阻塞,直到另一个线程触发这个事件。一旦一个线程被释放,AutoResetEvent 自动返回到无信号状态,阻止其他等待的线程继续执行,直到再次调用 Set()。在这个例子中,WorkerMethod 中的线程会在 autoEvent.WaitOne() 调用处等待,直到 Main 方法中的 autoEvent.Set() 被调用。
2024-11-05 17:08:17
301
原创 Halcon 算子备忘录
Scale_image_range(Image //传入原始图像Im、ageScle //灰度转换后的图像、Min 需要转换的最小值、Max 需要转换的最大值)将图像中50-100的灰度值映射到10-200,同样小于50和大于200的会被设置为0和255。将图像当中50-100的灰度元素映射到0-255,小于50为0或者大于100的灰度值为255。
2024-10-30 15:34:36
78
原创 2.5 openCv -- 使用 OpenCV 合并(混合)两张图片
通过在 00 到 11 之间变化 𝛼α,此运算符可用于在两张图片或视频之间执行时间交叉溶解,这在幻灯片展示和电影制作中常见(很酷吧?由于我们要添加 𝑠𝑟𝑐1src1 和 𝑠𝑟𝑐2src2,它们必须具有相同的尺寸(宽度和高度)和类型。从我们之前的教程中,我们已经了解了一些像素运算符。我们需要两个源图片 (𝑠𝑟𝑐1src1 和 𝑠𝑟𝑐2src2)。我们使用的图片如下:LinuxLogo.jpg 和 WindowsLogo.jpg。在这个例子中,𝛾γ 是上面代码中的参数 𝛾γ。
2024-07-25 10:46:10
1306
1
原创 2.4 openCv -- 对图像操作
处理图像 从文件加载图像:Cpp如果读取的是 JPG 文件,默认会创建一个三通道的图像。如果你需要灰度图像,可以使用:Cpp文件的格式由其内容(前几个字节)决定。要将图像保存到文件中:Cpp文件的格式由其扩展名确定。使用和可以从内存中读取或写入图像,而不是从文件中读取或写入。
2024-07-25 10:22:24
1402
原创 2.3 openCv -- 对矩阵执行掩码操作
具体而言,掩模操作通常涉及将掩模矩阵与图像的局部区域对齐,然后将掩模矩阵中的每个值与其覆盖的像素值相乘,最后将所有这些乘积相加以得出新的像素值。使用掩模的方式是将掩模矩阵的中心(在上述例子中由0-0索引标记)放置在你想要计算的像素上,然后将像素值与重叠的矩阵值相乘后求和。当掩模应用在图像上时,它会在图像的每个像素位置上滑动,每次都将掩模中的系数与相应的像素值相乘,然后将所有乘积相加以得到新的像素值。这是一个相当大的差异。这里的中心系数(5)比周围的系数大,这意味着中心像素的权重更大,这有助于增强对比度。
2024-07-24 13:53:23
1604
原创 2.2 openCv -- 如何使用 OpenCV 进行图像扫描、查找表操作及时间测量
与高效的访问方式相比,在发布模式下使用此方法的唯一区别在于,对于图像的每个元素,你都会为所使用的 C。如果可能,我们应该避免使用这些昂贵的操作,而改用更便宜的操作,如几个减法、加法,或者在最好的情况下,简单的赋值。此外,注意我们对上述操作的输入值数量是有限的。我们的测试案例程序(以及下面的代码示例)将完成以下操作:读取作为命令行参数传递的图像(它可以是彩色或灰度),并使用给定的命令行参数整数值应用色彩缩减。因此,对于较大的图像,预先计算所有可能的值并在赋值时仅进行赋值是有意义的,通过使用查找表来实现。
2024-07-24 13:34:57
1022
原创 2.1 openCv -- Mat
因此,OpenCV 2.0引入了一个新的C++接口,提供了一种新的做事方式,意味着你不必再为内存管理操心,使你的代码更加精炼(写得更少,做得更多)。RGB是最常见的,因为我们的视觉系统使用类似的方式来感知颜色,但请记住,OpenCV的标准显示系统使用BGR颜色空间来组合颜色(红色和蓝色通道的位置被交换)。然而,它们的头部分是不同的。Mat基本上是一个类,具有两部分数据:矩阵头(包含诸如矩阵大小、存储方法、矩阵存储地址等信息)和指向包含像素值的矩阵的指针(根据选择的存储方法,它可以具有任何维度)。
2024-07-23 15:32:37
851
原创 1.2 openCv -- 安装
在Windows上安装中文版OpenCV实际上与安装英文版的步骤相同,因为OpenCV本身并不包含语言包,它是一个跨平台的计算机视觉库,其功能和API是统一的,不受语言环境影响。不过,为了方便理解文档和教程,你可能希望使用中文资源。
2024-07-23 14:46:45
72
原创 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
287
原创 openCv -- 优势
OpenCV的目的是实现一个易于使用且高效的计算机视觉框架,支持实时视觉应用。:OpenCV在多个领域有广泛应用,包括但不限于机器人技术、医学成像、安全监控、虚拟现实(VR)、增强现实(AR)、自动驾驶汽车、工业自动化和人机交互。:它包含了大量的图像处理和计算机视觉算法,例如特征检测、物体识别、图像分割、运动分析与跟踪、3D重建、光流估计、照相机校准和增强现实等。:OpenCV主要使用C++编写,但同时也提供了Python、Java、C#和其他语言的接口,这使得它对不同背景的开发者都非常友好。
2024-07-22 10:33:47
485
原创 AI 与机器视觉:一场变革性的融合
例如,在工业生产中,AI 驱动的机器视觉系统可以快速而准确地识别出产品的瑕疵,大大提高了质量检测的效率和准确性,避免了人工检测可能出现的疏漏和疲劳导致的误判。随着技术的不断进步和完善,相信 AI 对机器视觉的帮助将会越发凸显,为我们创造出更多的奇迹和可能。综上所述,AI在机器视觉中的应用不仅提高了识别的准确性和效率,还扩展了机器视觉系统的应用领域,使其在工业自动化、医疗诊断、交通监控等多个领域发挥重要作用。在当今科技的舞台上,AI 与机器视觉的结合正绽放出耀眼的光芒,为各个领域带来了深刻的变革与突破。
2024-06-17 09:44:41
360
原创 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
24191
14
原创 Halcon计算点到直线的垂线方程
但是此算子不会返回具体的垂点坐标。当我们希望显示垂线的时候是需要知道垂点坐标,才可以绘制该直线的。一、我们都知道,点到直线最短距离就是垂线。Halcon也有现成的算子可以计算点到直线的距离。二、计算垂线方程代码。
2024-06-04 19:24:13
486
原创 视觉检测实战项目——九点标定
整个步骤:先识别圆,提取圆心坐标;然后根据对应的机械坐标计算转换矩阵;最后读取测试图片,提取圆心坐标,转换到机械坐标,计算圆心距。已知 9 个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理即最小二乘拟合。假定图像坐标、机械坐标如下,Matlab 测试一下。校正图,圆直径 1.5cm,圆心距 2cm。准备两张图,一张用来校正,一张用来测试。测试图,圆直径 2cm,圆心距 3cm。结果如下,识别的圆心坐标会有一定误差。图像坐标系和机械坐标定义如下。
2024-05-21 15:19:36
912
原创 HALCON 最新版本安装教程
可从互联网上获取到,参考:https://blog.youkuaiyun.com/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
2772
1
原创 Halcon与VisionMaster对比
而VisionMaster则是一款相对较新的机器视觉软件,它的使用场景通常集中在简单或中等复杂度的视觉任务,如简单的尺寸测量、缺陷检测、条码和2D码识别等。相比之下,VisionMaster可能在算法优化和处理速度方面略逊一筹,尽管它也提供了基本的多线程处理能力,但在高负载或大规模数据处理方面可能不如Halcon强大。作为一个经验丰富的机器视觉算法工程师,我对于机器视觉软件的评价会基于多年的实践经验和对不同软件功能的深入了解。1. 强大的算法库:拥有广泛的图像处理和分析算法,能够处理复杂的视觉任务。
2024-03-29 15:10:04
1032
原创 常用机器视觉软件对比
---evision机器视觉软件开发包所有代码都经过mmx指令的优化,处理速度非常快,感觉和Intel的IPP有的一拼(当然还是比IPP稍逊一筹,但是毕竟这是Intel自家开发的),但却提供了比IPP多得多的机器视觉功能,例如OCR,OCV,基于图像比对的图像质量检测,Barcode和MatrixCode识别。并不是每个软件都非常厉害。----Opencv-好处是开源免费图像处理库。1、美国 Opencv--------------由美国Intel公司建立,如今由Willow Garage提供支持。
2024-03-29 15:03:57
988
原创 工业相机自动对焦如何实现?机器视觉的自动对焦开发与应用前景如何
在模型训练的时候要注意不能以整张图片resize后进行训练,因为图像本身以细粒度来评判清晰度。这里以图像梯度为例,可以看到曲线存在一个明显的全局最优值,即最清晰图像。a.基于图像拍摄的主要目标,采集不同物距下的图像,本人使用的100倍光学放大物镜,因此采集物距步长为0.3μm。主动对焦法:通过传感器测量成像系统中的实际物距从而实现对焦,目前手机上的红外传感器为。被动对焦:通过分析图像梯度、对比度等特征获取当前帧图像质量,从而驱动电机进行。b.使用不同的图像清晰度评价函数来得到曲线,目前常见基于梯度、频域、
2024-03-25 14:51:24
704
原创 亚像素Sub Pixel概述
由于矩是基于积分的运算, 因此矩也被认为是对噪声不敏感的稳定特征,同时矩还具有被测目标的矩特性在成像前后 保持不变的性质。而两个像素之间有4.5um的距离,在宏观上可以看作是连在一起的,但在微观上它们之间还有无限更小的东西存在,是两个物理像素之间的“像素”,这些更小的东西就称为“亚像素”。【注】:亚像素定位算法的前提条件是:目标不是孤立的单个像素点,而必须是由一定灰度分布和形状分布的一系列像素点组成。利用图像中某一目标的几何特征得到亚像素的测量数据,一般是规则形状的目标,如圆,三角形、正方形等形状。
2024-03-25 13:41:47
362
原创 MessageBox.Show显示到最顶层
显示可包含文本、按钮和符号(通知并指示用户)的消息框。MFC的MessageBox的MB_TOPMOST属性可以直接设置。Winform的MessageBox没有直接设置的参数。显示具有指定文本、标题、按钮、图标、默认按钮和选项的消息框。
2024-03-07 10:58:47
3382
原创 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
2629
1
原创 光学系统的核心--分辨率
对工业定焦镜头而言,多数产品的最佳工作距离是300mm-600mm,即此工作距离下,镜头分辨率表现最佳,其他工作距离,分辨率表现可能会下降。“像元”“像素”“分辨率”这几个相机相关的术语,业界目前没有十分明确的定义,有些行业还会有显示分辨率,图像分辨率等等不同的概念,比较容易引起混淆。在相机分辨率越来越高的时代背景下,成像系统分辨率的“压力”也就落在了镜头上,所以更高分辨率(空间频率)的镜头在成像系统中的作用越来越重要。平时我们讨论的相机与镜头之间的关系,其实是相机,镜头,系统三者之间的关系。
2024-01-26 10:35:39
2985
原创 深度学习电脑配置有什么要求?
的快速发展,深度学习已经成为了许多领域的重要工具。然而,深度学习的应用需要强大的计算能力,因此对于想要进行深度学习的用户来说,选择一台合适的电脑是必不可少的。本文将重点介绍深度学习电脑配置的要求。
2024-01-25 13:43:02
5080
原创 硬件之相机选型
当然,对于很弱的信号,曝光也不能无限增加,因为随着曝光时间的增加,噪音也会积累, 曝光补偿就是增加拍摄时的曝光量。帧率是用于测量显示帧数的量度。在相机分辨率的选型上,要根据我们的项目需求而定,并不一定是分辨率越高就越好,分辨率高带来的图像数据量就大,后期的算法处理复杂度就高,而且一般分辨率大的相机,帧率一般都不会太高。在拍摄高速运动物体的场合,选择帧曝光的相机后,还需要计算相机的曝光时间,以使图像不产生拖影,理论的计算原则是:运动物体在相机芯片上所成的像,在曝光时间内,移动的距离不超过一个像元尺寸。
2024-01-24 17:08:35
1857
原创 C# 使用多线程,关闭窗体时,退出所有线程
this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出; Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题; System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干
2024-01-11 15:22:16
2540
转载 使用橡皮擦涂抹功能实现减少模板匹配特征
前者等待鼠标按下,后者无需等待直接监听鼠标并且都是一次触发一次返回,这样一来实现上面的功能就要挠一挠脑壳了。我的Qt作品(5)使用Qt+Halcon实现模板匹配;支持ROI框选/橡皮擦功能。但是文末附上了链接,那个是本人使用的Qt开发的涂抹工具。1、按住鼠标左键拖动鼠标进行擦除工作,松开鼠标停止擦除。get_mbutton 和 get_mposition。2、继续按住鼠标左键重复功能1,鼠标右键退出。
2024-01-11 10:44:31
252
原创 线扫相机品牌汇总(国外+国内)
该篇文章主要总结了一下国内外和线扫相机相关的公司。目前使用的主流线扫相机大多还是国外品牌,国内品牌大多也不能生产线扫相机中的核心部件——感光芯片。虽然目前国内外的技术差距还是比较大的,但是我们也在不断提高自我知识产权的数量,不断创新,不断追赶。
2024-01-08 14:47:21
2335
原创 一个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
1187
原创 halcon视觉缺陷检测常用的6种方法
1、频域结合空间,其实频域就是用波动观点看世界,看问题角度变了,光经过镜头其实发生的是傅立叶变换,此思想在傅立叶光学上有所阐述,就像光经棱镜分光,而光进入计算机内部,进行了采样和量化,然后我们用函数f(x,y)来表示这些数据描述。2、频率特征是图像的灰度变化特征,低频特征是灰度变化不明显,例如图像整体轮廓,高频特征是图像灰度变化剧烈,如图像边缘和噪声。四面打光,合成图像,求取梯度图型,然后Halcon里的光度立体法也是这方面的应用,关键的算子就是photometric_stereo。二、频域+空间结合法。
2023-12-10 13:18:37
1239
原创 工业相机与镜头选型方法(含实例)
若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
1404
openCvCsharp.zip
2020-01-17
getPosAndPaint.zip
2019-08-14
Python高性能编程
2019-04-19
学生成绩系统
2014-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人