halcon简易标定代码
read_image (Image, 'C:/Users/HJ/Desktop/demo1/4.bmp')
threshold(Image, Region, 110, 255)
closing_circle(Region, RegionClosing, 13.5)
fill_up(RegionClosing, RegionFillUp)
connection(RegionFillUp, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 15000, 9999999)
opening_circle(SelectedRegions, RegionOpening, 13.5)
orientation_region(RegionOpening, Phi)
area_center(RegionOpening, Area, Row, Column)
area_center(RegionOpening, Area, Row, Column)
if ((1.57<Phi and Phi<3.142) or (-3.142<Phi and Phi<-1.57))
vector_angle_to_rigid(Row, Column, Phi, Row, Column, 3.14, HomMat2D)
else
vector_angle_to_rigid(Row, Column, Phi, Row, Column, 0, HomMat2D)
endif
affine_trans_image(Image, ImageAffineTrans, HomMat2D, 'constant', 'false')
gen_rectangle2(Rectangle, Row, Column, 0, 1250, 550)
affine_trans_region(RegionOpening, RegionOpening, HomMat2D, 'nearest_neighbor')
* orientation_region (RegionOpening, PhiRef)
* PhiRef := rad(180)+PhiRef
area_center (RegionOpening, Area2, RowRef, ColumnRef)
*根据一张标准图片获得RowRef, ColumnRef * Image Acquisition 02: Code generated by Image Acquisition 02
list_files ('C:/Users/HJ/Desktop/demo1', ['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)
Width := 2500
Height := 1100
for Index := 0 to |ImageFiles| - 1 by 1
read_image (Image2, ImageFiles[Index])
* Image Acquisition 02: Do something
threshold(Image2, Region_Each, 110, 255)
closing_circle(Region_Each, RegionClosing_Each, 13.5)
fill_up(RegionClosing_Each, RegionFillUp_Each)
connection(RegionFillUp_Each, ConnectedRegions_Each)
select_shape(ConnectedRegions_Each, SelectedRegions_Each, 'area', 'and', 15000, 9999999)
orientation_region(SelectedRegions_Each, Phi_Each)
area_center(SelectedRegions_Each, Area_Each, Row_Each, Column_Each)
if ((1.57<Phi_Each and Phi_Each<3.142) or (-3.142<Phi_Each and Phi_Each<-1.57))
vector_angle_to_rigid(Row_Each, Column_Each, Phi_Each, RowRef, ColumnRef, 3.14, HomMat2D1)
else
vector_angle_to_rigid(Row_Each, Column_Each, Phi_Each, RowRef, ColumnRef, 0, HomMat2D1)
endif affine_trans_image(Image2, ImageAffineTrans_Each, HomMat2D1, 'constant', 'false')
threshold(ImageAffineTrans_Each, Region_Out, 110, 255)
closing_circle(Region_Out, RegionClosing_Out, 13.5)
fill_up(RegionClosing_Out, RegionFillUp_Out)
connection(RegionFillUp_Out, ConnectedRegions_Out)
select_shape(ConnectedRegions_Out, SelectedRegions_Outs, 'area', 'and', 15000, 9999999)
area_center(SelectedRegions_Outs, Area_Out, Row_Out, Column_Out)
crop_part(ImageAffineTrans_Each, ImagePart, Row_Out-Height/2, Column_Out-Width/2, Width, Height)
endfor
halcon简易标定代码的更多相关文章
- halcon 手眼标定的坐标转换原理讲解
原文链接:https://blog.csdn.net/opencv_learner/article/details/82113323 一直以来,对于手眼标定所涉及到的坐标系及坐标系之间的转换关系都没能 ...
- halcon相机标定及图像矫正
https://blog.csdn.net/humanking7/article/details/44756073 相机标定内容详解:转载自 祥的博客 预备知识 标定中的四个坐标系 1.1.平面旋转 ...
- halcon摄像机标定
摄像机标定程序: 注意:E:/calibration_image :为标定图像文件路径 'E:/calibration_description/caltab_123mm.descr:为标定 ...
- Halcon相机标定
摄像机标定程序: 注意:E:/calibration_image :为标定图像文件路径 'E:/calibration_description/caltab_123mm.descr:为标定 ...
- Halcon学习标定助手
本文采用halcon标定助手进行标定. 第一步:打开标定助手. 第二步:对描述文件进行修改 具体:打开算子窗口,输入gen_caltab,进行描述文件修改. 参数XNum和YNum为7行*7列的圆,M ...
- Halcon图片标定,使得后续图片处理过后变成与模板图片一样
随便选择一张图片 对这张图片进行旋转矫正之后,图片就变成了一个模板图片.它的区域region位置如图所示: 当来了一张新的图片的时候,让它与region比较,与模板的位置有明显的偏差, 如图所示: ...
- 简易机器学习代码(LR,Kmeans,NN,RNN)
Logistic Regression 特别需要注意的是 exp 和 log 的使用. sigmoid 原始表达式为 1 / (1+exp(-z)),但如果直接使用 z=-710,会显示 overfl ...
- halcon之屌炸天的自标定(1)
本次先对halcon的自标定做个整体介绍,了解屌炸天的自标定在实际应用中的应用与实现方法,具体的编程细节将在后续的文章中介绍. halcon提供了一种自标定的算子,它可以在不用标定板的情况下,标定 ...
- halcon中你不知道的标定板细节
本人文着重阐述以下问题: halcon是否只能使用halcon专用的标定板? halcon标定板如何生成? halcon标定板如何摆放,拍照数量有无限制? halcon是否只能使用halcon专用的标 ...
随机推荐
- Vue2响应式原理
vue2响应式原理 vue的特性:数据驱动视图和双向数据绑定.vue官方文档也提供了响应式原理的解释: 深入响应式原理 Object.defineProperty() Object.definePro ...
- 团队Beta演示
组长博客 本组(组名)所有成员 短学号 姓名 2236 王耀鑫(组长) 2210 陈超颖 2209 陈湘怡 2228 许培荣 2204 滕佳 2205 何佳琳 2237 沈梓耀 2233 陈志荣 22 ...
- typeScript类型总结
1.对象类型 {} 用来指定对象中可以包含哪些属性,在属性名后加?表示属性是可选的 语法:{属性名:属性值类型,属性名:属性值类型} 示例: let a:{name:string,age?:numbe ...
- 操作系统实现-loader
博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系统中最重要的一个 ...
- vivo 万台规模 HDFS 集群升级 HDFS 3.x 实践
vivo 互联网大数据团队-Lv Jia Hadoop 3.x的第一个稳定版本在2017年底就已经发布了,有很多重大的改进. 在HDFS方面,支持了Erasure Coding.More than 2 ...
- vs code 终端字体间距过大(全角的样子)
文件-首选项-设置 将 terminal.integrated.fontFamily 配置为 Consolas, 'Courier New', monospace 或其他想要的字体,或者点击齿轮按钮重 ...
- PowerShell 笔记 - 基础篇
Powershell 笔记 基础 查看powershell版本 PS C:\Users\chino> $PSVersionTable Name Value ---- ----- PSVersio ...
- 使用acme.sh自动申请、续期、部署免费的SSL证书
参考文档:https://github.com/acmesh-official/acme.sh 一个使用纯shell操作的免费SSL证书申请部署工具. 免费的SSL证书由以下CA机构提供: ZeroS ...
- CoaXPress 线缆和接插件的设计要求
本文的原理部分内容不仅适用于CoaXPress 协议,也同样适用于其它高速信号传输情形.在高速.低干扰信号传输时,线缆和接插件的选取是非常讲究的,我们在实际应用中经常会遇到线缆原因.阻抗匹配原因导致的 ...
- Go微服务框架go-kratos实战03:使用 gorm 实现增删改查操作
一.简介 在上一篇文章 go-kratos实战02 中,详细介绍了用 kratos 编写项目代码的步骤.这篇就在上篇基础上,再结合 Go 数据库操作库 gorm 一步一步来实现一个简单的增删改查操作. ...