采用上面的算子 将像素坐标点转换为实际坐标
image_points_to_world_plane(CamParam, Worldpose, Row, Column, 'm', X, Y)
第一个参数:标定得到的内参--根据标定助手得到的
第二个参数:标定得到的外参--根据标定助手得到的
第三个参数:计算得到的行--想要转化的点所在行
第四个参数:计算得到的列--想要转化的点所在行
第五个参数:单位
第六个参数:世界坐标中点的X坐标--转化之后的结果
第七个参数:世界坐标中点的Y坐标---转化之后的结果
单像素对应的世界坐标
第一步:在两个位置(X1,Y1) (X2,Y2)生成点
X1:=100
Y1:=100
Chang:=500
X2:=X1+Chang
Y2:=Y1+Chang
gen_cross_contour_xld(Cross1,X1,Y1, 46, 0.785398)
gen_cross_contour_xld(Cross2, X2, Y2, 76, 0.785398)
第二步:转化算子
image_points_to_world_plane(CamParam, Worldpose,Y1, X1, 'm', X11, Y11)
image_points_to_world_plane(CamParam, Worldpose,Y2,X2, 'm', X22, Y22)
第三步:
*计算世界坐标距离
distance_pp(Y11, X11, Y22, X22, DistanceWorld)
*计算像素坐标
distance_pp(X1,Y1,X2,Y2,DistanceImage)
*单像素对应的世界坐标距离---单位是m (乘1000变成毫米)
DistanceOnePixel:=DistanceWorld/DistanceImage
案例1:两点之间的距离
法1
image_points_to_world_plane(CamParam, Worldpose, Row, Column, 'm', X, Y)
image_points_to_world_plane(CamParam, Worldpose, Row, Column, 'm', X1, Y2)
distance_pp(X,Y,X1,Y1, Distance)
Distance为所求两点间的实际距离
法2--直接使用
distance_pp(X,Y,X1,Y1, Distance)
Distance乘DistanceOnePixel 得到真实的长度
案例2:求半径
直接用半径乘DistanceOnePixel 得到真实的半径值