有关ReprojectImageTo3D的点云长得奇怪的解决方案

本文介绍了在使用OpenCV的ReprojectImageTo3D函数时遇到的点云形状异常问题,以及如何解决。关键在于优化视差图参数、正确设置Q矩阵、使用点云阈值过滤和在Meshlab中查看结果。调整NumofDisparities、SADWindowSize、UniqueRatio和TextureTreshold等参数以获得高质量的视差图,确保Q矩阵准确,设置handleMissingValues为TRUE,通过设置阈值去除远离相机的点,最终在Meshlab中呈现清晰的3D模型。

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

给老板写的,再一次懒得翻译成中文了……

==========================================================

先放结果!


(左右两幅原始图像)再见显然不是我的特斯拉……

    

-----------------------------------------------------------------------------------------------------------------------------------

(disparity map)

-------------------------------------------------------------------

(点云/ point cloud)






==== 概括 ===========================================================================================================

主要的意思就是,其实opencv的reprojectImageTo3D没有问题。

(很多网上说这个function有问题, 比如这个stackoverflow的链接, 我遇到了和作者一摸一样的问题。他最后通过自己写了一遍reprojectImageTo3D函数就好了。http://stackoverflow.com/questions/22418846/reprojectimageto3d-in-opencv ,我也尝试自己写这个function但还是结果不理想,最后绕了一圈再用这个函数结果就对拉)


个人觉得这部分要注意的三点是:

1. 得到disparity map的过程中,参数要调对(texture treshold设大, 这样减少很多噪声。噪声太多的话点云就算对了也看不出来是什么)disparity map看上去一定要很好很好。噪声越少越好。我的uniqueRatio倒是很小……目测只有1~2的样子。

2. Q 矩阵要对~ 这个基本好好做calibration应该没大问题。我直接用了openCV 中的stereo calibration,并没有分别先做monocular calibration,效果依旧很不错。

3. 用reprojectImageTo3D之后,我用meshlab显示出来,zoom in 一下就好啦。


==== 正文 ==================================================================================================================

1. get good disparity map, play with the parameters of block matching algorithm


my experience is:

  • for closer object to be detected, NumofDisparities should be large, and vice versa

  • set SADWindowSize to be big

  • set UniqueRatio to 1~10

  • set TextureTreshold to be large enough (try 400~500)


2. Use ReprojectImageTo3D()


Suppose we get such disparity map:

disp.jpg



use:

reprojectImageTo3D(disparity, XYZ,

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值