一、思路
1、鼠标事件,获取鼠标点选的像素位置
2、通过视角将起始于相机原点并通过所选像素点的射线 L 计算出来(需要用到相机内参)
3、求出所点选像素点的像素邻域内(比如3个像素内)所对应的少数点云 P
4、如果P为空,则鼠标选点失败
5、如果P不为空,计算P内距离射线L最近的点,作为鼠标点选的点
(注意:该算法需要窗口大小与像素行列大小已知,代码中为(800,600))
二、效果
三、Halcon代码
* 初始化窗口
dev_update_off ()
dev_close_window ()
dev_open_window (0, 0, 800, 600, 'black', WindowHandle)
* 给点的大小赋值
PointSize := 7
* 读取模型并显示
read_object_model_3d ('dragon.pcd', 'mm', [],