热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

模板匹配–卡尺工具找圆

金属表面圆孔的识别与定位步骤:1.模板匹配的方式找到圆孔  图片质量不好,对比度较差,需要对图像进行预处理,使图像变得更清楚,对比度变强;   illuminate,equ_his

金属表面圆孔的识别与定位

步骤:

1. 模板匹配的方式找到圆孔

    图片质量不好,对比度较差,需要对图像进行预处理,使图像变得更清楚,对比度变强;

    illuminate,equ_histo_image

    

 

   模板匹配获取圆孔的的轮廓

2. 由第一步获取轮廓,拟合一个圆形,再通过卡尺工具得到圆孔的圆,得到圆心坐标,即可实现精定位。

1 list_files('E:/学习/Halcon/模板匹配/金属圆环', 'files', Files)
2 tuple_regexp_select(Files, '.*', Selection)
3
4 read_image(Image, Files[0])
5
6 *图像预处理
7 illuminate(Image, ImageIlluminate, 101, 101, 0.7)
8 equ_histo_image(ImageIlluminate, ImageEquHisto)
9 dev_set_draw('margin')
10 gen_circle (ROI_0, 657.5, 516.629, 38.984)
11
12 reduce_domain(ImageEquHisto, ROI_0, ImageReduced)
13 inspect_shape_model(ImageReduced, ModelImages, ModelRegions, 4, 40)
14
15 create_shape_model(ImageReduced, 4, -0.39, 0.79, 'auto', 'auto', 'use_polarity', 40, 5, ModelID)
16 get_shape_model_contours(ModelContours, ModelID, 1)
17 find_shape_model(Image, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
18
19 vector_angle_to_rigid(0, 0, 0, Row, Column, 0, HomMat2D)
20 affine_trans_contour_xld(ModelContours, ContoursAffinTrans, HomMat2D)
21 dev_clear_window()
22 dev_display(Image)
23 dev_display(ContoursAffinTrans)
24 for I := 0 to |Files|-1 by 1
25 read_image(Image, Files[I])
26 illuminate(Image, ImageIlluminate, 101, 101, 0.7)
27 equ_histo_image(ImageIlluminate, ImageEquHisto)
28 find_shape_model(ImageEquHisto, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
29
30 vector_angle_to_rigid(0, 0, 0, Row, Column, 0, HomMat2D)
31 affine_trans_contour_xld(ModelContours, ContoursAffinTrans, HomMat2D)
32
33 dev_clear_window()
34 dev_display(ImageEquHisto)
35 dev_display(ContoursAffinTrans)
36
37 union_adjacent_contours_xld(ContoursAffinTrans, UnionContours, 100, 50, 'attr_keep')
38 dev_set_color('green')
39 dev_display(UnionContours)
40 length_xld(UnionContours, Length)
41 tuple_max(Length, Max)
42 tuple_find(Length, Max, Indices)
43
44 select_obj(UnionContours, ObjectSelected, Indices+1) //获取外圆的轮廓
45 dev_clear_window()
46 dev_display(ImageEquHisto)
47 fit_circle_contour_xld(ObjectSelected, 'algebraic', -1, 0, 0, 3, 2, CircleRow, CircleColumn, CircleRadius, StartPhi, EndPhi, PointOrder)
48 gen_circle(Circle, CircleRow, CircleColumn, CircleRadius)
49 dev_display(Circle)
50
51 create_metrology_model(MetrologyHandle)
52 CircleParam :=[CircleRow, CircleColumn, CircleRadius]
53 add_metrology_object_generic(MetrologyHandle, 'circle', CircleParam, 10, 5, 1, 30, [], [], Index)
54
55 set_metrology_object_param(MetrologyHandle, 'all', 'measure_transition', 'positive')
56
57 apply_metrology_model(ImageEquHisto, MetrologyHandle)
58 get_metrology_object_measures(Contours, MetrologyHandle, 'all', 'all', Row1, Column1)
59 get_metrology_object_result(MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
60 get_metrology_object_result_contour(Contour, MetrologyHandle, 'all', 'all', 1.5)
61 gen_cross_contour_xld(Cross, Row1, Column1, 20, Angle)
62
63 dev_clear_window()
64 dev_display(ImageEquHisto)
65 dev_set_color('green')
66 dev_display(Contours)
67 dev_set_color('blue')
68 dev_display(Contour)
69 dev_set_color('red')
70 dev_display(Cross)
71 clear_metrology_model(MetrologyHandle)
72 stop()
73 endfor

运行结果:

 

 



推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 大连微软技术社区举办《.net core始于足下》活动,获得微软赛百味和易迪斯的赞助
    九月十五日,大连微软技术社区举办了《.net core始于足下》活动,共有51人报名参加,实际到场人数为43人,还有一位专程从北京赶来的同学。活动得到了微软赛百味和易迪斯的赞助,场地也由易迪斯提供。活动中大家积极交流,取得了非常成功的效果。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 家装日记六:家具采购和瓷砖选择
    本文记录了作者进行家装的过程,包括家具采购和瓷砖选择。作者介绍了自己家的装修风格以及选择烤漆家具和红白系列的原因。作者还提到了装修风格以简约为主,不可以太花哨的要求。最后,作者提到了价格较贵的问题。 ... [详细]
  • 本文讨论了当某位排位靠前的涉众提供了一张精美的界面图片时,是否可以将其作为设计约束。同时还探讨了高质量素材和愿景之间的关系,以及老大自身的软件方法和建模技能。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
author-avatar
linjiabin43
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有