HALCON示例程序check_hazelnut_wafers.hdev威化饼干质量检测(完整与否,是否破碎)

HALCON示例程序check_hazelnut_wafers.hdev威化饼干质量检测(完整与否,是否破碎)

示例程序源码(加注释)

  • 读入图片
    read_image (Image, ‘food/hazelnut_wafer_01’)

  • 关闭窗口
    dev_close_window ()

  • 根据给定的长宽比打开窗口
    dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)

  • 关闭图像实时更新
    dev_update_window (‘off’)

  • 显示线宽设置为3
    dev_set_line_width (3)

  • 区域显示方式为边缘模式
    dev_set_draw (‘margin’)

  • 设置字体显示格式
    set_display_font (WindowHandle, 20, ‘mono’, ‘true’, ‘false’)

  • 循环检测
    for Index := 1 to 24 by 1

    • 读入图片
      read_image (Image, ‘food/hazelnut_wafer_’ + Index$’.02’)
    • binary_threshold - 使用二进制阈值分割图像
    • 函数原型:binary_threshold(Image:Region:Method,LightDark:UsedThreshold)
    • Image:输入图像;Region:输出区域;Method:分割方法;
    • LightDark:选取亮区还是暗区;UsedThreshold:返回分割时使用的阈值
    • https://www.cnblogs.com/baiyy-daheng/p/8931931.html
      方法一:扫描图像的每个像素值,值小于127的将像素值设为0(黑色),
      值大于等于127的像素值设为255(白色)。该方法的好处是计算量少速度快。
      方法二:计算像素的平均值K,扫描图像的每个像素值如像素值大于K像素值设为255(白色),
      值小于等于K像素值设为0(黑色)。
      方法三:使用直方图方法来寻找二值化阈值,直方图是图像的重要特质,
      直方图方法选择二值化阈值主要是发现图像的两个最高的峰,
      然后在阈值取值在两个峰之间的峰谷最低处。

      binary_threshold (Image, Foreground, ‘smooth_histo’, ‘light’, UsedThreshold)
    • 对选取区域使用圆形区域进行开运算
      opening_circle (Foreground, FinalRegion, 8.5)
    • area_holes - 计算区域的孔面积。
      area_holes (FinalRegion, AreaHoles)
    • 求取区域的矩形度。
      rectangularity (FinalRegion, Rectangularity)
      dev_display (Image)
    • 如果孔洞过多面积超过300或者矩形度小于0.92,认为破损。
      if (AreaHoles > 300 or Rectangularity < 0.92)
      dev_set_color (‘red’)
      Text := ‘Not OK’
      else
      dev_set_color (‘forest green’)
      Text := ‘OK’
      endif
      dev_display (FinalRegion)
      disp_message (WindowHandle, Text, ‘window’, -1, -1, ‘’, ‘false’)
      if (Index < 24)
      disp_continue_message (WindowHandle, ‘black’, ‘true’)
      stop ()
      endif
      endfor

处理思路

这个例子的思路非常简单,二值化求取饼干区域,对饼干求取孔洞面积与矩形度,通过这两个参数实现饼干的筛选。一个新的阈值分割方法binary_threshold 。学习到了求取孔洞面积的直接方法area_holes 。求取矩形度算子rectangularity 。

后记

大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows Media Center .MCL文件代码执行漏洞(MS16-059)

blast 2016/06/21 13:180x00 简介漏洞作者EduardoBraun Prado在今年早期发现了WMP的.MCL文件又存在一个可以导致远程代码执行的漏洞。为什么要说又呢&#xff0c;因为这个东西实在是“不争气”&#xff0c;同一个地方出现了多次绕过导致远程代码执行的问题。0x01 历史A――MS1…

SCARA机器人与 DELTA机器人

1、SCARA机器人SCARA&#xff08;Selective Compliance Assembly Robot Arm&#xff0c;中文译名&#xff1a;选择顺应性装配机器手臂&#xff09;是一种圆柱坐标型的特殊类型的工业机器人。1978年&#xff0c;日本山梨大学牧野洋发明SCARA&#xff0c;该机器人具有四个轴和四个…

一直以来都没直视的轮播-_-

一直以来做项目碰到轮播图我都是去网站上找现成插件拿来用&#xff0c;现成的插件1是省时间&#xff0c;拿来改改尺寸改改参数就能直接用&#xff0c;2是现在的插件确实很强大&#xff0c;对于我一个刚刚学习前端的人来说&#xff0c;牛人写的轮播我看懂也要花些功夫&#xff0…

HALCON示例程序circles.hdev边界轮廓的圆形拟合

HALCON示例程序circles.hdev边界轮廓的圆形拟合 小哥哥小姐姐觉得有用点个赞呗&#xff01; 示例程序源码&#xff08;加注释&#xff09; 读入图片 read_image (Image, ‘double_circle’)窗口初始化 dev_close_window () get_image_size (Image, Width, Height) dev_open…

asp.net 微信企业号办公系统-流程设计--保存与发布

如果流程未设计完时可以先保存&#xff0c;以后再打开接着设计。点击工具栏上的保存按钮即可保存当前流程设计: 如果下次要接着设计&#xff0c;则可以打开该流程继续设计&#xff1a; 如果流程设计完成&#xff0c;可以点击安装按钮来发布流程&#xff0c;流程安装成功后即加入…

search-guard 在 Elasticsearch 2.3 上的运用

uni3orns 2016/06/23 11:09Author&#xff1a;uni3orns参考内容&#xff1a;kibana.logstash.es/content/ela…groups.google.com/forum/#!for…github.com/floragunnco…此文章基于以下软件版本&#xff0c;不同版本可能略有差异&#xff1a;elasticsearch 2.3.3search-guard…

HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割

HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割 示例程序源码&#xff08;加注释&#xff09; 定义Interactive并赋值&#xff0c;0&#xff1a;固定框&#xff1b;1&#xff1a;手工绘制框。 Interactive : 0 读入图片 read_image (Image, ‘ic’) 关闭…

sys

sys.argv 命令行参数List&#xff0c;第一个元素是程序本身路径 sys.exit(n) 退出程序&#xff0c;正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径&#xff0c;初…

修改环境变量

在path变量后添加&#xff0c;对变量长度无限制&#xff0c;需要重启后生效reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%path%;c:\newpath;whatever" /freg save "HKLM\SYSTEM\CurrentCont…

Canny边缘检测算法原理及其VC实现详解(二)

3、 Canny算法的实现流程 由于本文主要目的在于学习和实现算法&#xff0c;而对于图像读取、视频获取等内容不进行阐述。因此选用OpenCV算法库作为其他功能的实现途径&#xff08;关于OpenCV的使用&#xff0c;作者将另文表述&#xff09;。首先展现本文将要处理的彩色图片。 …

IDEA注册jar包使用和常用插件

IDEA注册jar包使用 点击获取下载地址或生成注册码 一、安装完成后&#xff0c;先不启动&#xff0c;首先如下图修改相关的地方。 二、启动IDEA&#xff0c;并且激活IDEA IDEA插件仓库 IntelliJ IDEA Plugins 一、Maven Helper 我一般用这款插件来查看maven的依赖树。在不使用此…

HALCON示例程序class_2dim_unsup.hdev基于二维直方图的聚类分类

HALCON示例程序class_2dim_unsup.hdev基于二维直方图聚类分类的颜色分类 示例程序源码&#xff08;加注释&#xff09; 读入图片 read_image (Image, ‘patras’)关闭窗口 dev_close_window ()得到图片尺寸大小 get_image_size (Image, Width, Height)打开窗口 dev_open_wind…

Android Monkey压力测试

一. JAVA环境的搭建 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载.JAVA环境变量的搭建: 在"我的电脑"-"属性"-"高级"-"环境变量"中,点击新建,填写变量名为JAVA_HOME,变量值为JAVA安装的路径.在系统变量中找到Path,点击编辑,…

bzoj 4517: [Sdoi2016]排列计数

4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 637 Solved: 396[Submit][Status][Discuss]Description 求有多少种长度为 n 的序列 A&#xff0c;满足以下条件&#xff1a;1 ~ n 这 n 个数在序列中各出现了一次若第 i 个数 A[i] 的值为 i&#x…

idea compare功能 之一次bug修复

一次bug修复 最近开发完了一套单点系统&#xff0c;jenkins打包上传到服务器就出问题&#xff0c; 可以启动但是不能正常工作。 首先想到的是环境不一样&#xff0c; 于是把jenkins的jdk和maven都调整和本机大版本相同。 当然肯定是没卵用的&#xff0c; 于是查看日志 Class pa…

黑白CCD成像不理想,如何补色

黑白CCD成像不理想&#xff0c;如何补色

HALCON示例程序class_ndim_box.hdev基于多通道图像的分类

HALCON示例程序class_ndim_box.hdev基于多通道图像的分类 示例程序源码&#xff08;加注释&#xff09; 读入图片 read_image (Image, ‘ic’)创建一个新的分类器 create_class_box (ClassifHandle)获取图片大小 get_image_size (Image, Width, Height)关闭窗口 dev_close_wi…

gcc编译系统

一、 C语言编译过程 C语言的编译过程可分为四个阶段&#xff1a; 1、预处理&#xff08;Preprocessing&#xff09; 对源程序中的伪指令&#xff08;即以#开头的指令&#xff09;和特殊符号进行处理的过程。 伪指令包括&#xff1a;1&#xff09;宏定义指令&#xff1b; 2&…

自制反汇编逆向分析工具 迭代第六版本 (五)

本工具从最初版的跳转分布图只为了更直观地分析反汇编代码的分支结构&#xff0c;第三版开始对直观图进行逆向分支代码的输出&#xff0c;第四版对分支输出策略的一些探索&#xff0c;第五版结合之前的探索进行改进。第六版在现在功能的基础上进行增强&#xff0c;利用第六版&a…

模型搜索 及 轮廓搜索 的原理

模型搜索 及 轮廓搜索 的原理