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专用的标 ...
随机推荐
- Python装饰器:套层壳我变得更强了
Python装饰器:套层壳我变得更强了 Python装饰器:套层壳我变得更强了 关于作用域和闭包可以聊点什么? 什么是作用域 什么是闭包 装饰器:套层壳我变得更强了 参考资料 昨天阅读了<Pyt ...
- java.sql和javax.sql的区别
根据 JDBC 规范,javax.sql 包中的类和接口首先作为 JDBC 2.0 可选包提供.此可选程序包以前与 J2SE1.2 中的 java.sql 程序包是分开的.从 J2SE1.4 开始,这 ...
- 【LINT】cpplint修改版:自定义编码风格检查工具lint
github:https://github.com/skullboyer/code-check Code Check 本仓介绍的内容涉及代码静态检查和编码风格检查 但主要放在编码风格检查,lint是基 ...
- NS2的LEACH仿真出来的nam文件拓扑的节点为什么x=0,且y=0
查看.tr文件和.nam发文件下所有的节点的x,y值都是(0,0),nam图像更没有运行出来 于是我将if { $opt(sc) == "" } {puts "*** N ...
- Linux磁盘和文件系统知识总结
硬盘操作 为什么要给硬盘分区? 如果你需要在一块硬盘上用到多个文件系统,那么你就需要对硬盘进行分区,以便用不同的分区支持不同的文件系统.(但一个硬盘只能有一个分区表!)反过来说,如果你整块硬盘都用同样 ...
- python入门基础知识一(基于孙兴华python自动化)
print('aaa')等价于print("aaa") 英文单引号和双引号在字符串的输出上并无区别,但如果要打印这么一段话:I'm interested in Python. 就要 ...
- ReentrantLock可重入、可打断、Condition原理剖析
本文紧接上文的AQS源码,如果对于ReentrantLock没有基础可以先阅读我的上一篇文章学习ReentrantLock的源码 ReentrantLock锁重入原理 重入加锁其实就是将AQS的sta ...
- vue中blob文件下载及其它下载方式
一.Blob对象的了解 1:blob表示一个不可变.原始数据的类文件对象.Blob()构造函数返回一个新的blob对象:blob对象的内容由参数给出的值串联组成: 2:new Blob(array, ...
- 同一个目标ip在windows下使用tracert正常但是在linux下使用traceroute中间节点不显示?tracert与traceroute原理与抓包分析
针对第一个问题先说结论 windows的tracert是使用icmp来探路,linux的traceroute是使用udp探测,如果想达到和windows下一个效果,建议使用-I参数或mtr 下面是原理 ...
- VMWare中CentOS安装VM-Tools
查看CD-ROM驱动器的设备信息 可以通过下面几个命令来查看 dmesg命令 dmesg | egrep -i --color 'cdrom|dvd|cd/rw|writer' /proc/sys/d ...