halcon圆形、残缺圆形检测

代码中关键知识:

1、循环读取图片

2、基本图像处理:开运算、二值化、内部填充、

3、获取图像边缘线,分割曲线,然后计算曲线的circularity_xld圆率范围,和area_center_xld的面积大小,做阈值筛选

4、然后fit_circle_contour_xld 拟合,确定圆形的半径大小,然后对半径进行阈值筛选

图片数据下载:https://download.csdn.net/download/zzx2016zzx/88809987

dev_close_window()
dev_clear_window()
dev_open_window (0, 0, 646, 492, 'black', WindowHandle)
list_image_files ('/image', 'default', [], ImageFiles)
for Index := 0 to |ImageFiles|-1 by 1read_image (Image, ImageFiles[Index])get_image_size (Image, Width, Height)count_channels (Image, Channels)if(Channels==3)rgb1_to_gray (Image, GrayImage)elsecopy_image (Image, GrayImage)endifthreshold (GrayImage, Regions, 119, 255)connection (Regions, ConnectedRegions)fill_up (ConnectedRegions, RegionFillUp)select_shape (RegionFillUp, SelectedRegions, ['area','circularity'], 'and', [4000,0.24], [23000,1])opening_circle (SelectedRegions, RegionOpening, 3.5)gen_contour_region_xld (RegionOpening, Contours, 'border')segment_contours_xld (Contours, ContoursSplit, 'lines_circles', 10, 4, 10)count_obj (ContoursSplit, Number)for i:=1 to Number by 1select_obj (ContoursSplit, ObjectSelected, i)area_center_xld (ObjectSelected, Area, Row, Column, PointOrder)circularity_xld (ObjectSelected, Circularity)if(Area>3400 and Circularity>0.22)fit_circle_contour_xld (ObjectSelected, 'algebraic', -1, 0, 0, 3, 2, Row1, Column1, Radius, StartPhi, EndPhi, PointOrder1)if(Radius>80)gen_circle (Circle, Row1, Column1, Radius)dev_display (Image)dev_display(Circle)       breakendifendifendforstop()
endfor

效果图:

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

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

相关文章

Jmeter接口自动化测试 —— Jmeter断言之Json断言

json断言可以让我们很快的定位到响应数据中的某一字段,当然前提是响应数据是json格式的,所以如果响应数据为json格式的话,使用json断言还是相当方便的。 还是以之前的接口举例 Url: https://data.cma.cn/weatherGis/web/weather/weatherFcst…

代码生成器(新):mybatis-plus-generator使用指南

代码生成器(新)官网 后端代码:点击查看 LearnElementUiAndSpringBoot 提醒:LearnElementUiAndSpringBoot下载完后,在运行调试 Main.java里的main方法之前,除了utils包和Main.java文件,其他包需…

SpringBoot security 安全认证(三)——自定义注解实现接口放行配置

背景:通过Security实现了安全管理,可以配置哪些接口可以无token直接访问。但一个麻烦就是每增加一个匿名访问接口时都要去修改SecurityConfig配置,从程序设计上讲是不太让人接受的。 本节内容:即是解决以上问题,增加一…

初次认识和学习SEO

初探 SEO 初探 SEO SEO 的基本概念 搜索引擎优化(英语:search engine optimization,缩写为 SEO),是一种透过了解搜索引擎的运作规则来调整网站,以及提高目的网站在有关搜索引擎内排名的方式 一般的可以理…

使用Virt-Manager定制 Windows Server QCOW2镜像

使用Virt-Manager定制 Windows Server QCOW2镜像 前言 在云计算和虚拟化技术日益普及的今天,定制化的虚拟机镜像对于满足特定需求显得尤为重要。Virt-Manager是一个强大的工具,可以帮助用户轻松地创建和管理虚拟机镜像。本文将指导您如何使用Virt-Manag…

LoRA:语言模型微调的计算资源优化策略

编者按:随着数据量和计算能力的增加,大模型的参数量也在不断增加,同时进行大模型微调的成本也变得越来越高。全参数微调需要大量的计算资源和时间,且在进行切换下游任务时代价高昂。 本文作者介绍了一种新方法 LoRA,可…

C++杂选

#include <iostream> #include <regex>using namespace std;int main() { //它声明了一个 string 类型的变量 input&#xff0c;用于存储输入的字符串。然后使用 getline() 函数从标准输入中读取一行输入&#xff0c;并将其存储在 input 变量中。string input;getl…

【经典例子】Java实现2048小游戏(附带源码)

一、游戏回顾 2048游戏是一款数字益智游戏&#xff0c;目标是通过合并相同数字的方块来达到2048这个目标。游戏在一个4x4的方格上进行&#xff0c;每个方格上都有一个数字&#xff08;初始时为2或4&#xff09;。玩家可以通过滑动方向键&#xff08;上、下、左、右&#xff09;…

SpringBoot接入微信公众号【服务号】

SpringBoot接入微信公众号【服务号】 一、服务号注册 注册地址&#xff1a;https://mp.weixin.qq.com/cgi-bin/registermidpage?actionindex&langzh_CN 注册流程参考&#xff1a;https://kf.qq.com/touch/faq/150804UVr222150804quq6B7.html?platform15 二、服务号配…

第八届:世界3D渲染挑战赛《无尽阶梯》正式开启

全世界的3D艺术创作者们引颈期盼的盛事“全球3D渲染艺术大奖赛”已迈入第八个年头。本届比赛的主题为“无尽的阶梯”&#xff0c;参赛者们可通过挑战赛展现自身的创造力&#xff0c;比赛在行业内拥有极高的知名度&#xff0c;含金量十足&#xff0c;参赛这可通过这里提高自己在…

靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用

靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用。 1|0介绍 xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目录遍历等.首先存在漏洞的web服务一定是存在xml传输数据的,可以在http头的content-type中查…

计算机服务器中了halo勒索病毒如何处理,halo勒索病毒解密数据恢复

网络技术的不断发展与应用&#xff0c;为企业的生产生活提供了极大便利&#xff0c;但网络数据安全威胁无处不在&#xff0c;近日&#xff0c;云天数据恢复中心接到某连锁超市求助&#xff0c;企业计算机服务器被halo勒索病毒攻击&#xff0c;导致计算机系统瘫痪&#xff0c;无…