首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构光三维扫描仪.像素对应的深度图

结构光三维扫描仪.像素对应的深度图
EN

Stack Overflow用户
提问于 2022-02-21 08:37:43
回答 1查看 550关注 0票数 2

我试图创建结构光三维扫描仪

摄像机标定

相机校准是OpenCV官方教程的拷贝。由于我有相机的内在参数(camera matrix)。

投影仪校准

投影仪的标定可能是不正确的,但过程是:投影仪显示棋盘图案和摄像机从不同角度拍摄一些照片。图像是带有摄像机参数的cv.undistored,然后用OpenCV官方教程对结果图像进行标定。因此,我有投影仪的内在参数(projector matrix)。

旋转和过渡

cv.calibrate,我有旋转矢量和过渡向量作为结果,但是向量计数等于图像计数,而且我认为它不是核心向量,因为我在校准中移动了摄像机和投影仪。我的新想法是投射棋盘扫描背景,执行校准,以这种方式,我将有Rotation vectorTransition vector。我不知道这样做对不对。

正在扫描

扫描过程是:

用-> projector matrix ->项目模式生成->不失真模式,用相机拍摄->不失真的camera matrix照片

摄像机-投影仪像素图

我使用GrayCode模式和cv.graycode.getProjPixel,相机和投影机之间有pixels mapping。我的投影仪不是很高的分辨率和最后的模式不是很容易读。我将创建自定义函数,在不使用最后模式的情况下生成映射。

问题

我不知道如何从所有这些信息中获取depth map(Z)。我的困惑是因为有三个坐标系-相机,投影仪和世界坐标系。

如何用代码找到“Z”?我能从Z中得到图像和模式之间的pixels mapping信息吗?

拥有:信息的

  • p(x,y,1) = R*q(x,y,z) +T-其中p是象点,q是真实世界点(可能),RT是旋转向量和过渡向量。如何找到RT
  • Z=B.F/(x‘)-其中Z是坐标(深度),B-baseline(相机和投影机之间的距离),我可以用手测量它,但也许这不是摄像机像素和投影仪像素之间的(x-x') -距离。我不知道怎么弄基线。也许这是Transition vector
  • 我试图得到4个意义点,在cv.getPerspectiveTransform中使用它们,这个结果在cv.reprojectImageTo3D中使用。但cv.getPerspectiveTransform返回3x3矩阵和cv.reprojectImageTo3D使用Q-4×4 perspective transformation matrix that can be obtained with stereoRectify

类似的问题:

  • 如何从结构光三维扫描中获取点云数据? -答案是you need to define a vector that goes from the camera perspective center to the pixel in the image and then rotate this vector by the camera rotation。但我不知道如何定义/找到这个vercor,并且需要Rotation vector
  • 如何计算两个摄像机之间的旋转和平移? -问题是关于两个相机之间的R和T,但是几乎所有的地方都写着投影仪是逆相机。一个很好的答案是The only thing you have to do is to make sure that the calibration chessboard is seen by both of the cameras.,但我认为如果我设计棋盘模式,它将被墙(射影变换)所厌恶。

有许多其他资源,我将更新列表与评论。我错过了一些东西,我想不出如何实现它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-24 12:05:20

假设p(x,y)是像点,视差为(x-x')。你可以得到深度点,

代码语言:javascript
复制
disparity = x-x_ # x-x'
point_and_disparity = np.array([[[x, y, disparity]]], dtype=np.float32)

depth = cv2.perspectiveTransform(point_and_disparity, q_matrix)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71203311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档