欢迎来到本博客
Halcon算子太多,学习查找都没有系统的学习查找路径,本专栏主要分享Halcon各类算子含义及用法,有时间会更新具体案例。
具体食用方式:可以点击本专栏【Halcon算子快速查找】–>搜索你要查询的算子名称;或者点击Halcon算子汇总博客,即可食用。
支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!
算子简介
函数名 | 解释 |
---|---|
create_cam_pose_look_at_point() | 创建一个3D摄像机位置(从摄像机中心观察方向)。 |
create_cam_pose_look_at_point( : : CamPosX, CamPosY, CamPosZ, LookAtX, LookAtY, LookAtZ, RefPlaneNormal, CamRoll : CamPose)
函数说明: 创建一个3D摄像机位置(从摄像机中心观察方向);通过两个点和相机的旋转角度创建3D相机相对于世界坐标系的位姿。第一个点是(CamPosX,CamPosY,CamPosZ)
,第二个点是(LookAtX,lookAtY,lookAtZ)
。第一个点定义了相机的光学中心在世界坐标系中的位置,即相机坐标系的原点。第二个点定义了相机的观察点,也确定了观察方向。
因此,第二个点位于相机坐标系的z轴上。确定了这两个点之后,剩下需要确定的就是相机绕z轴旋转的角度。为了确定这个旋转角度,需要指定一个参考平面,RefPlaneNormal
表示这个参考平面的法向量,它确定相机的参考方向。最后,相机的旋转角度通过CamRoll
来指定,这个角度表示的是相机围绕z轴相对于其参考方向的旋转。也就是说RefPlaneNormal
确定了投影的方向,CamRoll
,再使得相机相对于这个参考方向旋转一个角度。
函数参数:
CamPosX:输入相机的光线中心对应的X坐标;
CamPosY:输入相机的光学中心对应的Y坐标;
CamPosZ:输入相机光线中心对应的Z坐标;
LookAtX:输入相机指向的3D立体指定点X坐标;
LookAtY:输入相机指向的3D立体指定点y坐标;
LookAtZ:输入相机指向的3D立体指定点z坐标;
RefPlaneNormal:输入给出法向矢量的参考平面;默认:‘-y’ ;参考:‘x’,‘y’, ‘z;’-x’,‘-y’,‘-z’ ;
CamRoll:输入相机倾斜角度;默认: 0;
CamPose:输出3D相机坐标;
投影方向和投影平面,参数RefPlaneNormal
设置情况说明如下:
参数 | 参考平面 | 结果 |
---|---|---|
RefPlaneNormal=‘x’ | yz平面 | x轴垂直投影得到的2D图像,指向图形外面 。 |
RefPlaneNormal=‘-x’ | yz平面 | x轴垂直投影得到的2D图像,指向图形里面 。 |
RefPlaneNormal=‘y’ | xz平面 | y轴垂直投影得到的2D图像,指向图形外面 。 |
RefPlaneNormal=‘-y’ | xz平面 | x轴垂直投影得到的2D图像,指向图形里面 。 |
RefPlaneNormal=‘z’ | xy平面 | z轴垂直投影得到的2D图像,指向图形外面 。 |
RefPlaneNormal=‘-z’ | xy平面 | z轴垂直投影得到的2D图像,指向图形里面 。 |
除了上面说明的几个方向,RefPlaneNormal
可以通过一个数组给出[x,y,z]
,表示任意的方向,并不严格限定为坐标系的坐标轴。
相机的光学中心和相机的观察点必须不一样。
此外,参考平面的法向量不能和z坐标轴平行,否则,相机位姿不能很好地确定。当一个3D模型或者3D图形从一个特定的相机位置投影,使用create_cam_pose_look_at_point
可视化非常有用。在这种情况下,由这个算子创建的位姿pose可以传入project_object_model_3d
或者 project_shape_model_3d
进行投影计算。
vector_to_fundamental_matrix_distortion.hdev 演示未校准立体重建的结果
find_shape_model_3d_recompute_score.hdev 在基于形状的3D匹配的姿势优化之后重新计算分数
本专栏博客汇总:Halcon算子汇总
今天的文章就到这里啦~
喜欢的话,点赞、收藏⭐️、关注哦 ~