自动检测两棋盘格中的角点,并计算视差How to solve Disparity

本文介绍了使用三角测量法计算视差的方法,通过不生成深度图,而在左右图像中找到相同点来求解物体距离。详细步骤包括设置鼠标回调函数获取点坐标,以及对棋盘格角点的自动检测,最终实现自动化计算视差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近搞了好几天的计算视差,说麻烦也不麻烦,记录一下也让今后用得到的人做个借鉴。

我的计算视差用的是三角测量的方式,貌似现在都是这一种方式。得到物体距相机平面的距离也就是“Z”,大概有三种方式,第一种就是先生成深度图,之后点击深度图上的某一点,获取该点的像素值(此时图片应该是IPL_depth_16s的格式,三通道)cn[0]就表示深度。由于各种原因,我用了很多种算法的出来的深度图都很垃圾,一团一团的看不清楚,因此我就放弃了这种方法。

    第二种方法和第三种方法思路是一样的,那就是不生成深度图,在左右两张图片上找同一个点,如果经过了对准,那么此时两张图片上的同一个点的纵坐标应该是相同的(相机左右摆放),因为存在视差,横坐标是不同的,两横坐标相减再通过三角测量,就可以求出距离。具体的三角测量公式可以看《Learning OpenCV》这本书,要注意的是焦距不是单独标定时的fx或fy,而是双目标定时得到的Q矩阵的Q[2][3],基线由Q[3][2]=-1/T求出。

现在介绍第二种方法,设置两个鼠标操作的回调函数,左图上点一下,得到坐标;右图上点一下,得到坐标(注意,一定要点的是真实世界中的同一点,尽量不要有误差),鼠标按下时读点,将横坐标写入文本,鼠标抬起时都取文本,在主函数内将读取的内容相减,就可以用三角

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值