RGB-D
RGB-D 的应用

对齐 RGB 和深度图像
rectified_left 图像对齐。我们可以将该图像投影到 3D 空间(利用获取的深度信息),然后使用彩色相机内参将其重新投影回彩色图像平面。使用 DepthAI 进行对齐
StereoDepth - 用于立体相机
left 和 right),并输出深度图。默认情况下,深度图像与 rectified_left 图像对齐,但可以使用 setDepthAlign() 方法更改。Python
1stereo.setDepthAlign(dai.CameraBoardSocket.RGB) # 假设 RGB 相机连接到 RGB/CAM_A 端口示例
ImageAlign - 通用对齐
input 和 inputAlignTo),并输出对齐后的图像。对于 RGB-D,该节点允许我们将飞行时间 (ToF) 深度对齐到 RGB。效率
对于立体相机,请使用 StereoDepth 节点,因为其在重投影步骤中进行了优化,比使用 ImageAlign 更高效。
广角相机上的 RGB-D

使用 Camera 节点。该节点可以使用相机的内参对彩色图像进行去畸变。
Python
Python
1cam = pipeline.create(dai.node.Camera)
2cam.setBoardSocket(dai.CameraBoardSocket.RGB)
3cam.setMeshSource(dai.CameraProperties.WarpMeshSource.CALIBRATION)可以使用相机的内参和 OpenCV 手动进行去畸变。
Python
1alpha = 0
2stereo.setAlphaScaling(alpha)
3
4rgb_w = camRgb.getResolutionWidth()
5rgb_h = camRgb.getResolutionHeight()
6rgbIntrinsics = np.array(calibData.getCameraIntrinsics(rgbCamSocket, rgb_w, rgb_h))
7rgb_d = np.array(calibData.getDistortionCoefficients(rgbCamSocket))
8rgb_new_cam_matrix, _ = cv2.getOptimalNewCameraMatrix(rgbIntrinsics, rgb_d, (rgb_w, rgb_h), alpha)
9map_x, map_y = cv2.initUndistortRectifyMap(rgbIntrinsics, rgb_d, None, rgb_new_cam_matrix, (rgb_w, rgb_h), cv2.CV_32FC1)
10
11frameRgb = cv2.remap(frameRgb, map_x, map_y, cv2.INTER_LINEAR)完整代码
使用 OpenCV 去畸变的示例
对广角相机拍摄的图像进行去畸变时,畸变校正会导致图像的部分区域被裁剪。这会导致视野 (FOV) 的损失,而 FOV 正是使用广角相机的主要优势。为了最大化 FOV,可以使用 

alpha 参数 [0-1] 来缩放去畸变后的图像 [指南]。设置 alpha 参数
alpha = 0- 无缩放,去畸变后的图像与原始图像尺寸相同。

alpha = 1- 最大缩放,去畸变后的图像是能容纳在原始图像中的最大可能图像。

StereoDepth 去畸变
Python
1stereo.setAlphaScaling(alpha)需要帮助?
请前往 OAKChina 官网 获取技术支持或解答您的任何疑问。