Halcon标定文件生成.docx
- 文档编号:14516109
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:12
- 大小:24.83KB
Halcon标定文件生成.docx
《Halcon标定文件生成.docx》由会员分享,可在线阅读,更多相关《Halcon标定文件生成.docx(12页珍藏版)》请在冰点文库上搜索。
Halcon标定文件生成
2020-12-2921:
4858人阅读(0)
Halcon标定文件的生成
图一
Halcon标定文件的生成,需要有以下几个步骤:
1.创建一个标定数据模板,由算来完成。
2.指定相机的类型,初始化相机内部参数,由算子来完成。
3.指定标定板的描述文件,由算子完成。
4.搜集观看数据,有算子完成。
也确实是搜集标定板上圆点的中心坐标,跟各个校正板的位置姿态。
5.配置校正进程。
由算子完成。
6.将数据整合进行标定计算。
calibrate_cameras
7.取得标定参数。
get_calib_data
8.记录标定参数,write_cam_par
StartCamPar:
=[, 0, , , 326, 247, 652, 494]
说明一下那个数组的意思。
面阵相机有14或18个参数(依照想相机的畸变模式),关于线阵相机有17个参数。
这些参数能够分开为内部相机参数、外部相机参数。
面阵相机(division模式):
Focus(焦距):
远焦镜头镜头焦距的长度
Kappa:
扭曲系数
Sx,Sy:
两像素间距
Cx,Cy:
中心点坐标
Whith,Height:
图像的宽高
面阵相机(polynomia模式):
Focus(焦距):
远焦镜头镜头焦距的长度
K1,K2,K3,P1,P2:
扭曲系数
Sx,Sy:
两像素间距
Cx,Cy:
中心点坐标
Whith,Height:
图像的宽高
线阵相机不做具体介绍
2020-12-2312:
5668人阅读
(1)
图一:
30*30规格的标定板的规格
黑色圆点行数:
7 黑色圆点列数:
7 外边框长度:
30mm*30mm 内边框长度:
* 即:
黑色边框线宽为一个圆点半径() 黑色圆点半径:
圆点中心间距:
裁剪宽度:
* 即:
由黑色边框向外延伸 边角:
由黑色外边框向内缩进一个中心边距的长度
40*40规格的标定板的规格
黑色圆点行数:
7 黑色圆点列数:
7 外边框长度:
40mm*40mm 内边框长度:
* 即:
黑色边框线宽为一个圆点半径() 黑色圆点半径:
圆点中心间距:
5mm 裁剪宽度:
21mm*21mm 即:
由黑色边框向外延伸 边角:
由黑色外边框向内缩进一个中心边距的长度
50*50规格的标定板的规格
黑色圆点行数:
7 黑色圆点列数:
7 外边框长度:
50mm*50mm 内边框长度:
* 即:
黑色边框线宽为一个圆点半径() 黑色圆点半径:
圆点中心间距:
裁剪宽度:
* 即:
由黑色边框向外延伸 边角:
由黑色外边框向内缩进一个中心边距的长度
60*60规格的标定板的规格
黑色圆点行数:
7 黑色圆点列数:
7 外边框长度:
60mm*60mm 内边框长度:
* 即:
黑色边框线宽为一个圆点半径() 黑色圆点半径:
圆点中心间距:
裁剪宽度:
* 即:
由黑色边框向外延伸 边角:
由黑色外边框向内缩进一个中心边距的长度
分类:
2020-12-2312:
51151人阅读
(2)
图1
上图即为我自行制作的标定板的图样。
下面我具体介绍一下,如何制作halcon的标准标定板
方式一:
用halcon软件自动生成的.ps文件来制作标定板。
那个也是最简单有效的方式。
打开halcon的HDevelop软件,挪用算子:
gen_caltab(:
:
,,,,:
)
每行黑色标志圆点的数量。
每列黑色标志圆点的数量。
两个就近黑色圆点中心之间的距离。
黑色圆点半径与圆点中心距离的比值。
标定板描述文件的文件途径(.descr)。
标定板图像文件的文件途径(.ps),如图1
然后复位(F2),点击运行(F5)通过软件Gsview打开,按1:
1比例打印,OK!
备注一个30*30的标准标定板的halcon源代码。
gen_caltab(7,7,,,'F:
/halcon程序/gencaltab/','F:
/halcon程序/gencaltab/')
规格的标定板的规格
黑色圆点行数:
7
黑色圆点列数:
7
外边框长度:
30mm*30mm
内边框长度:
* 即:
黑色边框线宽为一个圆点半径()
黑色圆点半径:
圆点中心间距:
裁剪宽度:
* 即:
由黑色边框向外延伸
边角:
由黑色外边框向内缩进一个中心边距的长度
方式二:
用halcon软件自动生成的.descr文件来制作标定板。
打开halcon的HDevelop软件,挪用算子:
gen_caltab生成一个.descr的文件,用写字板打开(注意要用写字板,记事本打开会有一些数据不可见,一样windowsXP在C:
\ProgramFiles\WindowsNT\Accessories就有写字板软件)打开后的文件大体如下:
以40*40为例:
#PlateDescriptionVersion2
#HALCONVersion-- MonDec1911:
08:
072020
#Descriptionofthestandardcalibrationplate 标准标定板的描述
#usedfortheCCDcameracalibrationinHALCON
#(generatedbygen_caltab) (由)gen_caltab算子生成
#
#
#7rowsx7columns 7行*7列
#Width,heightofcalibrationplate[meter]:
标定板的宽和高:
米,米
#Distancebetweenmarkcenters[meter]:
标志圆点中心间距:
米
#Numberofmarksiny-dimension(rows)
r7
Y方向标志圆点的数量。
#Numberofmarksinx-dimension(columns)
c7
X方向标志圆点的数量。
# offsetofcoordinatesysteminz-dimension[meter](optional):
z0
Z坐标偏移
#Rectangularborder(rimandblackframe)ofcalibrationplate
标定板的矩形边框(边缘和黑色边框)
# rimofthecalibrationplate(minx,maxy,maxx,miny)[meter]:
o
标定板的剪切边缘【】(以标定板中心为坐标圆点)
# outerborderoftheblackframe(minx,maxy,maxx,miny)[meter]:
i
黑色边框的外边缘【】
# triangularcornermarkgivenbytwocornerpoints(x,y,x,y)[meter]
# (optional):
t
三角形标志【】
# widthoftheblackframe[meter]:
w
黑色边框线的宽度:
米。
#calibrationmarks:
xyradius[meter]
一下是各个矫正板黑色圆点在标定板上的坐标(共7*7个)
#calibrationmarksaty=-0.015m
0
#calibrationmarksaty=-0.01m
0
#calibrationmarksaty=-0.005m
0
#calibrationmarksaty=0m
0
0
0
00
0
0
0
#calibrationmarksaty=0.005m
0
#calibrationmarksaty=0.01m
0
#calibrationmarksaty=0.015m
0
标定板的材料也有必然的要求,请参看《如何进行图形校正》。
2021-02-0910:
1727人阅读(0)
基于HALCON的模板匹配方式总结
很早就想总结一下前段时刻学习HALCON的心得,但由于其他的情形老是抽不出时刻。
去年有过一段时刻的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇《基于HDevelop的形状匹配算法参数的优化研究》文章,总结了在形状匹配进程中哪些参数阻碍到模板的搜索和匹配,又如何来和谐这些参数来加速匹配进程,提高匹配的精度,这篇paper放到了中国论文在线了,需要能够去下载。
德国MVTec公司开发的HALCON机械视觉开发软件,提供了许多的功能,在那个地址我要紧学习和研究了其中的形状匹配的算法和流程。
HDevelop开发环境中提供的匹配的方式要紧有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成份、元素)的匹配,基于灰度值的匹配和基于形状的匹配。
这三种匹配的方式各具特点,别离适用于不同的图像特点,但都有创建模板和寻觅模板的相同进程。
这三种方式里面,我要紧就第三种-基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的成效,简化了用其他工具,比如VC++来开发的进程。
在VC下往往针对不同的图像格式,就会弄的很头疼,更不用说编写图像特点提取、模板成立和搜寻模板的代码呢,我想其中间进程会很复杂,成效也不必然会显著。
下面我就具体地谈谈基于HALCON的形状匹配算法的研究和心得总结。
1. Shape-Basedmatching的大体流程
HALCON提供的基于形状匹配的算法主若是针对感爱好的小区域来成立模板,对整个图像成立模板也能够,但如此除非是对象在整个图像中所占比例专门大,比如像视频会议中人体上半身如此的图像,我在后面的视频对象跟踪实验中确实是针对整个图像的,这往往也是要捐躯匹配速度的,那个后面再讲。
大体流程是如此的,如下所示:
⑴第一确信出ROI的矩形区域,那个地址只需要确信矩形的左上点和右下点的坐标即可,gen_rectangle1()那个函数就会帮忙你生成一个矩形,利用area_center()找到那个矩形的中心;
⑵然后需要从图像中获取那个矩形区域的图像,reduce_domain()会取得那个ROI;这以后就能够够对那个矩形成立模板,而在成立模板之前,能够先对那个区域进行一些处置,方便以后的建模,比如阈值分割,数学形态学的一些处置等等;
⑶接下来就能够够利用create_shape_model()来创建模板了,那个函数有许多参数,其中金字塔的级数由Numlevels指定,值越大那么找到物体的时刻越少,AngleStart和AngleExtent决定可能的旋转范围,AngleStep指定角度范围搜索的步长;那个地址需要提示的是,在任何情形下,模板应适合主内存,搜索时刻会缩短。
对专门大的模板,用Optimization来减少模板点的数量是很有效的;MinConstrast将模板从图像的噪声中分离出来,若是灰度值的波动范围是10,那么MinConstrast应当设为10;Metric参数决定模板识别的条件,若是设为’use_polarity’,那么图像中的物体和模板必需有相同的对照度;创建好模板后,这时还需要监视模板,用inspect_shape_model()来完成,它检查参数的适用性,还能帮忙找到适合的参数;另外,还需要取得那个模板的轮廓,用于后面的匹配,get_shape_model_contours()那么会很容易的帮咱们找到模板的轮廓;
⑷创建好模板后,就能够够打开另一幅图像,来进行模板匹配了。
那个进程也确实是在新图像中寻觅与模板匹配的图像部份,这部份的工作就由函数find_shape_model()来承担了,它也拥有许多的参数,这些参数都阻碍着寻觅模板的速度和精度。
那个的功能确实是在一幅图中找出最正确匹配的模板,返回一个模板实例的长、宽和旋转角度。
其中参数SubPixel决定是不是精准到亚像素级,设为’interpolation’,那么会精准到,那个模式可不能占用太多时刻,假设需要更精准,那么可设为’least_square’,’lease_square_high’,但如此会增加额外的时刻,因此,这需要在时刻和精度上作个折中,需要和实际联系起来。
比较重要的两个参数是MinSocre和Greediness,前一个用来分析模板的旋转对称和它们之间的相似度,值越大,那么越相似,后一个是搜索贪婪度,那个值在专门大程度上阻碍着搜索速度,假设为0,那么为启发式搜索,很耗时,假设为1,那么为不平安搜索,但最快。
在大多数情形下,在能够匹配的情形下,尽可能的增大其值。
⑸找到以后,还需要对其进行转化,使之能够显示,这两个函数vector_angle_to_rigid()和affine_trans_contour_xld()在那个地址就起那个作用。
前一个是从一个点和角度计算一个刚体仿射变换,那个函数从匹配函数的结果中对构造一个刚体仿射变换很有效,把参考图像变成当前图像。
其详细的流程图和中间参数,如下图所示:
(无法上传)
2. 基于形状匹配的参数关系与优化
在HALCON的说明资料里讲到了这些参数的作用和关系,在上面提到的文章中也作了介绍,那个地址主若是重复说明一下这些参数的作用,再强调一下它们阻碍匹配速度的程度;
在为了提高速度而设置参数之前,有必要找出那些在所有测试图像中匹配成功的设置,这时需考虑以下情形:
① 必需保证物体在图像边缘处截断,也确实是保证轮廓的清楚,这些能够通过形态学的一些方式来处置;
② 若是Greediness值设的太高,就找不到其中一些可见物体,这时最后将其设为0来执行完全搜索;
③ 物体是不是有封锁区域,若是要求物体在任何状态下都能被识别,那么应减小MinScore值;
④ 判定在金字塔最高级上的匹配是不是失败,能够通过find_shape_model()减小NumLevels值来测试;
⑤ 物体是不是具有较低的对照度,若是要求物体在任何状态下都能被识别,那么应减小MinContrast值;
⑥ 判定是不是全局地或局部地转化对照度极性,若是需要在任何状态下都能被识别,那么应给参数Metric设置一个适合的值;
⑦ 物体是不是与物体的其他实例重叠,若是需要在任何状态下都能识别物体,那么应增加MaxOverlap值;
⑧ 判定是不是在相同物体上找到多个匹配值,若是物体几乎是对称的,那么需要操纵旋转范围;
如何加速搜索匹配,需要在这些参数中进行合理的搭配,有以下方式能够参考:
① 只要匹配成功,那么尽可能增加参数MinScore的值;
② 增加Greediness值直到匹配失败,同时在需要时减小MinScore值;
③ 若是有可能,在创建模板时利用一个大的NumLevels,即将图像多分几个金字塔级;
④ 限定许诺的旋转范围和大小范围,在挪用find_shape_model()时调整相应的参数;
⑤ 尽可能限定搜索ROI的区域;
除上面介绍的之外,在保证能够匹配的情形下,尽可能的增大Greediness的值,因为在后面的实验中,用模板匹配进行视频对象跟踪的进程中,那个值在专门大程度上阻碍到匹配的速度。
固然这些方式都需要跟实际联系起来,不同图像在匹配进程中也会有不同的匹配成效,在具体到某些应用,不同的硬件设施也会对那个匹配算法提出新的要求,因此需要不断地去尝试。
在接下来我会结合自己做的具体的实验来如何利用HALCON来进行实验,主若是在视频对象分割和视频对象的跟踪方面。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Halcon 标定 文件 生成