Halcon自动对焦技术验证

2024-03-09 16:04

本文主要是介绍Halcon自动对焦技术验证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

由于相当多的产品是具备封装好的软件和机械机构,不能在人为的控制相机的调焦。与此同时,使用的客户有可能为工厂的普工和技术工程师,所以在对客户的培训上有较大的难度,使用一个可以判断当前图像清晰程度的程序可以帮助完成相机的自动对焦。

1:程序总结


Result_Deviation:=[]
Image_Max:=0
gen_empty_obj (OKImage)
Index_ok:=0
list_files ('C:/Users/1/Desktop/work/2.22自动对焦/正光', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])*裁剪所选中的区域gen_rectangle1 (ROI_0, 370.73, 653.962, 593.473, 876.586)reduce_domain (Image, ROI_0, ImageReduced)crop_domain (ImageReduced, ImagePart)*可行方案1get_image_size (ImagePart, Width, Height)crop_part(ImagePart, ImagePart00,0, 0, Width-1, Height-1)crop_part(ImagePart, ImagePart01,0, 1, Width-1, Height-1)crop_part(ImagePart, ImagePart10,1, 0, Width-1, Height-1)convert_image_type(ImagePart00, ImagePart00, 'real')convert_image_type(ImagePart01, ImagePart01, 'real')convert_image_type(ImagePart10, ImagePart10, 'real')sub_image(ImagePart10, ImagePart00, ImageSub1, 1, 0)mult_image(ImageSub1, ImageSub1, ImageResult1,1, 0)sub_image(ImagePart01, ImagePart00, ImageSub2, 1, 0)mult_image(ImageSub2, ImageSub2, ImageResult2,1, 0)add_image(ImageResult1, ImageResult2, ImageResult, 1, 0)intensity(ImageResult, ImageResult2, Value, Deviation)*创建灰度偏差数组Result_Deviation:=[Result_Deviation,Deviation]*选取灰度偏差值最大的图像if (Image_Max<Deviation)Image_Max:=DeviationOKImage:=Image*输出标准差最大的图像Index_ok:=Indexendif
endfor
*显示结果图像
dev_display (OKImage)
stop ()

计算公式:
在这里插入图片描述

2:程序分析

2.1采集图像

通常情况下自动对焦可以通过软件控制Z向的伺服轴,以一个指定的距离间隔上升,在每次上升结束后使用相机拍一次照片并返回图像和当前工作的伺服距离。
或者可以采用电动变焦的镜头或者液态镜头,同样也是不同焦距间隔下拍照。
一般伺服移动可以使用1mm为单位,焦距移动以0.5mm为单位。

2.2导入程序图像

在程序中需要预先设定对焦的ROI区域,由于产品通常并不是一个平面,包含高低部分,可以对需要对焦的边缘进行ROI的提取(尤为注意,需要一个灰度对比度大的边缘区域,才可以有效的实现效果)

2.3运行计算程序和效果

每张图片的结果都会返回一个所选中区域的灰度标准差值,当灰度标准差越大时,代表区域锐利度越大,代表图像越清晰。当标准差越小时。代表区域锐利度越小,代表图像越模糊。
注意事项:1:所选中的ROI区域具有不同高度的多条边缘时会出现计算结果异常的情况,需要选中的ROI框中有且仅有一个高度的边缘。

3:图像集验证

在这里插入图片描述

在这里插入图片描述

这篇关于Halcon自动对焦技术验证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/791186

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Python Excel实现自动添加编号

《PythonExcel实现自动添加编号》这篇文章主要为大家详细介绍了如何使用Python在Excel中实现自动添加编号效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍简单的说,就是在Excel中有一列h=会有重复