Halcon检测边缘——笔记
绿色:注释
褐色:控制开发
浅蓝色:外部函数——HDevelop函数文件,可在所有Halcon程序中使用
深蓝色:图像获取和处理
紫色:内部函数——本地程序函数,只在当前程序使用
做个补充:如何实现在图片上手动画出矩形和圆形来获取检测圆和检测矩形的坐标位置呢?
*显示初始化
dev_update_off ()
read_image (Image , 'D:/Backup/桌面/halcon选中/11.png')
*read_image (Image, 'pads')
get_image_size (Image, Width, Height)
draw_circle (3600, Row1, Column1, Radius1)
draw_circle (3600, Row2, Column2, Radius2)
draw_rectangle2 (3600, Row3, Column3, Phi3, Length31, Length32)
draw_rectangle2 (3600, Row4, Column4, Phi4, Length41, Length42)
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
*
*定义圆的近似位置和测量公差
RowCircle := [Row1,Row2]
CircleInitRow := [RowCircle]
CircleInitColumn := [Column1,Column2]
gen_cross_contour_xld (Cross1, CircleInitRow, CircleInitColumn, 6, 0.785398)
CircleInitRadius := [Radius1,Radius2]
CircleRadiusTolerance := 20
*定义矩形的近似位置和测量公差
RectangleInitColumn := [Column3 ,Column4]
RectangleInitRow := [Row3,Row4]
RectangleInitPhi := [Phi3,Phi4]
RectangleInitLength1 := [Length31,Length41]
RectangleInitLength2 := [Length32,Length42]
RectangleTolerance := 20
*
*编制计量模型数据结构
create_metrology_model (MetrologyHandle)
*
*预先设置图像宽度是不必要的,但可以改善第一次测量的运行时间
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*
*添加计量矩形对象到模式,正如上面定义的
add_metrology_object_rectangle2_measure (MetrologyHandle, RectangleInitRow, RectangleInitColumn, RectangleInitPhi, RectangleInitLength1, RectangleInitLength2, RectangleTolerance, 5, .5, 1, [], [], MetrologyRectangleIndices)
*
*将计量圆对象添加到上述定义的模型中
add_metrology_object_circle_measure (MetrologyHandle, CircleInitRow, CircleInitColumn, CircleInitRadius, CircleRadiusTolerance, 5, 1.5, 2, [], [], MetrologyCircleIndices)
*可以在一个调用中度量每个度量对象的多个圆/矩形/线/椭圆实例
*因为我们喜欢测量每个对象的两个圆,所以我们将'num_instances'设置为2
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'num_instances', 2)
* 将“测量-过渡”设置为“均匀”确保只有一致的圆圈返回,那有要么只是从亮到暗的边缘,要么相反
* 因为一致性检查会在运行时增加,所以确实如此在默认情况下切换为
* 然而,在本例中,打开它更安全,因为正负边都存在
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'measure_transition', 'uniform')
* 设置最低分数可以使结果更加可靠
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'min_score', .9)
*
*性能测量
*
apply_metrology_model (Image, MetrologyHandle)
*
get_metrology_object_result (MetrologyHandle, MetrologyRectangleIndices, 'all', 'result_type', 'all_param', RectangleParameter)
* 提取参数以提高可读性
Sequence := [0:5:|RectangleParameter| - 1]
RectangleRow := RectangleParameter[Sequence]
RectangleColumn := RectangleParameter[Sequence + 1]
RectanglePhi := RectangleParameter[Sequence + 2]
RectangleLength1 := RectangleParameter[Sequence + 3]
RectangleLength2 := RectangleParameter[Sequence + 4]
*
*查看圆的测量结果
get_metrology_object_result (MetrologyHandle, MetrologyCircleIndices, 'all', 'result_type', 'all_param', CircleParameter)
*提取参数以提高可读性
Sequence := [0:3:|CircleParameter| - 1]
CircleRow := CircleParameter[Sequence]
CircleColumn := CircleParameter[Sequence + 1]
CircleRadius := CircleParameter[Sequence + 2]
*
* 显示结果
*
* 得到测量轮廓
get_metrology_object_result_contour (Contours, MetrologyHandle, 'all', 'all', 1.5)
*
* 得到测量区域的轮廓和边缘点的坐标,作为拟合圆和矩形的基础
get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', Row5, Column5)
gen_cross_contour_xld (Cross, Row5, Column5, 6, 0.785398)
* 显示所有
Color := ['gray','cyan','green']
dev_display (Image)
dev_set_line_width (1)
dev_set_color (Color[0])
dev_display (Contour)
dev_set_color (Color[1])
dev_display (Cross)
dev_set_line_width (2)
dev_set_color (Color[2])
dev_display (Contours)
Message := Color[2] + ': Measurement result'
Message[1] := Color[1] + ': Edge candidate points'
Message[2] := Color[0] + ': Measure regions'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Clean up memory
clear_metrology_model (MetrologyHandle)
Halcon检测边缘——笔记相关推荐
- 【HALCON】学习笔记
HALCON课程的笔记,同步课程学习进度进行更新,主要记录学习的算子 HALCON算子基本结构 算子(图像输入:图像输出:控制输入:控制输出) HALCON常用算子 read_image(:Image ...
- 行人检测 读书笔记 综述
行人检测 读书笔记 综述(1) 朱文佳-基于机器学习的行人检测关键技术研究 本文是博主对上海交通大学的朱文佳的硕士毕业论文的学习笔记,如果不当或理解错误之处,敬请指导,不胜感激. 绪论 1.1 典型应 ...
- 异常检测阅读笔记《Inpainting Transformer for Anomaly Detection》CVPR 2021
异常检测阅读笔记<Inpainting Transformer for Anomaly Detection> CVPR 2021 来源:2021年的CVPR,原文论链接 论文的方向是图像方 ...
- HALCON检测字符日期
这个例子展示了利用HALCON检测包装盒上面的数字日期,此示例演示了如何与自动文本读取器在双边过滤图像上细分酸奶盖的到期日期.具体解释见注释. * This example demonstrates ...
- OpenCV函数 Canny 检测边缘
OpenCV函数 Canny 检测边缘. 原理 Canny 边缘检测算法 是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的 最优算法, 最优边缘 ...
- ITK:使用Canny边缘检测过滤器检测边缘
ITK:使用Canny边缘检测过滤器检测边缘 内容提要 输出结果 输入 输出 C++实现代码 内容提要 将CannyEdgeDetectionImageFilter应用于图像 输出结果 输入 输出 C ...
- OpenCV使用Laplace运算符检测边缘的实例(附完整代码)
OpenCV使用Laplace运算符检测边缘的实例 OpenCV使用Laplace运算符检测边缘的实例 OpenCV使用Laplace运算符检测边缘的实例 #include "opencv2 ...
- 《南溪的目标检测学习笔记》——模型预处理的学习笔记
1 介绍 在目标检测任务中,模型预处理分为两个步骤: 图像预处理:基于图像处理算法 数值预处理:基于机器学习理论 关于图像预处理,请参考<南溪的目标检测学习笔记>--图像预处理的学习笔记 ...
- 《南溪的目标检测学习笔记》——COCO数据集的学习笔记
1 COCO数据集 COCO数据集下载链接:COCO_download 1.1 数据概览 数据集大小 train: 118287张 train+val: 123287张 val: 5000张 目标数量 ...
最新文章
- Unicode转义(\uXXXX)的编码和解码
- 玩转SpringCloud Spring Cloud 微服务
- linux 系统创建ora文件,手动创建oracle数据库
- file_put_contents图片固定大小_创意图片裁剪,神一样的操作
- SAP Fiori Elements - Account F4 help - how value help dialog is populated
- 使用 rapidxml 做配置文件
- 大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#
- (95)FPGA仿真文件保存(VCD文件)
- 重磅发布!36氪2020年度中国最具登陆科创板潜力企业TOP50榜单揭晓
- 二叉树转为单链表——Flatten Binary Tree to Linked List
- Python学习路线汇总,必看
- Java单例模式的双if
- PDG格式转换PDF格式的方法
- DAOS 源码解析之 daos_pool
- 用matlab判断两个球是否相交,判断两个矩阵相交
- 爬虫学习(14):selenium自动化测试(三):鼠标和键盘操作
- 《大学物理》课程考试大纲
- 安装 KubeOperator
- 计算机软件总体上分为,计算机软件分为哪两大类?它们各自的作用是什么?
- liferay开发环境搭建