Halcon提取目标高度信息

安稳与你 提交于 2019-12-17 17:02:43

Halcon提取目标高度信息

*关闭图像窗口更新
dev_update_window ('off')

*关闭变量更新
dev_update_var ('off')

*关闭程序计数器更新
dev_update_pc ('off')

*关闭窗口
dev_close_window ()

*打开新窗口
dev_open_window (0, 0, 672, 484, 'black', WindowHandle)

*设置字体显示信息
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')

*读取左面相机采集的图像
read_image (ImageL, 'E:/all/33')

*读取右面相机采集的图像
read_image (ImageR, 'E:/all/34')

*获取图像的大小
get_image_size (ImageR, Width, Height)

*根据双目立体视觉标定获取到左右相机的摄像机内部参数和右相机相对左相机的位姿
*左相机的摄像机内部参数
CamParamL := [0.0130507774353,-665.817817207,1.4803417027e-5,1.48e-5,155.89225769,126.70664978,320,240]
*右相机的摄像机内部参数
CamParamR := [0.0131776504517,-731.860636733,1.47997569293e-5,1.48e-5,162.98210144,119.301040649,320,240]
*右相机相对左相机的位姿
RelPose := [0.153573364258,-0.00373362231255,0.0447351264954,0.174289124775,319.843388114,359.894955219,0]

*获取非标准外极限图像和标准外极限图像之间的变换矩阵(映射图像)
gen_binocular_rectification_map (MapL, MapR, CamParamL, CamParamR, RelPose, 1, 'geometric', 'bilinear', RectCamParL, RectCamParR, CamPoseRectL, CamPoseRectR, RectLPosRectR)

*根据变换矩阵对左边相机进行图像校正
map_image (ImageL, MapL, ImageRectifiedL)

*根据变换矩阵对右边相机进行图像校正
map_image (ImageR, MapR, ImageRectifiedR)

binocular_disparity (ImageRectifiedL, ImageRectifiedR, Disparity, Score1, 'ncc', 17, 17, 5, 0, 60, 1, 0.1, 'none', 'none')
*根据左右相机的校正图像计算深度信息
binocular_distance_mg (ImageRectifiedL, ImageRectifiedR, Distance, Score, RectCamParL, RectCamParR, RectLPosRectR, 1, 10, 5, 0, 'false', 'default_parameters', 'accurate')

*清除窗口内容
dev_clear_window ()

*显示距离图像
dev_display (Distance)

*计算零件高度
gen_rectangle2 (IC, 107.276, 62.0363, rad(-25.6343), 7.64174, 6.41978)
gen_rectangle2 (PCB, 101.986, 145.771, rad(4.75463), 7.97698, 6.76498)
get_grayval (Distance, 107.276, 62.0363, wk_Grayval)
get_grayval (Distance, 101.986, 145.771, PCB_Grayval)
IC_Height:=(PCB_Grayval-wk_Grayval)*100

*显示结果
dev_display (ImageRectifiedL)
set_tposition (WindowHandle, 103, 54)
write_string (WindowHandle, '零件的高度是:'+Height+'cm')

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!