OAK相机的RGB-D彩色相机去畸变做对齐

低畸变标准镜头的OAK 相机 RGB-D 对齐的方法

OAK相机内置的RGB-D管道会自动将深度图和RGB图对齐。其思想是将深度图像中的每个像素与彩色图像中对应的相应像素对齐。产生的RGB-D图像可以用于OAK内置的图像识别模型将识别到的2D物体自动映射到三维空间中去,或者产生的RGB-D图像用于产生彩色点云数据。默认情况下,在立体匹配过程中,深度与校正后的左图像对齐。

立体深度节点提供了现成的对齐功能。该节点接收一对立体图像(左右相机图像),并输出一个深度图。默认情况下,深度图与校正后的左图像对齐,可以通过以下方法设置彩色相机和深度图对齐。

stereo.setDepthAlign(dai.CameraBoardSocket.RGB) # 彩色相机和深度图对齐的功能

大广角系列相机的彩色相机和深度图对齐产生RGB-D的方法

当使用广角OAK相机时,由于镜头造成的图像的大失真,对齐可能会很棘手。默认情况下,深度图和左右相机是能够矫正到没有畸变的水平状态,但是彩色图像是没有去畸变的。这可能会导致两个图像对齐以后的错位。为了解决这个问题,彩色图像也需要去畸变。

目前OAK相机内置了彩色相机去畸变的节点,是可以在相机内去除畸变后和深度图对齐,生产RGB-D的效果

cam = pipeline.create(dai.node.Camera)

cam.setBoardSocket(dai.CameraBoardSocket.RGB)

cam.setMeshSource(dai.CameraProperties.WarpMeshSource.CALIBRATION)

也可以通过opencv的方式手动去畸变

alpha = 0

stereo.setAlphaScaling(alpha)

rgb_w = camRgb.getResolutionWidth()

rgb_h = camRgb.getResolutionHeight()

rgbIntrinsics = np.array(calibData.getCameraIntrinsics(rgbCamSocket, rgb_w, rgb_h))

rgb_d = np.array(calibData.getDistortionCoefficients(rgbCamSocket))

rgb_new_cam_matrix, _ = cv2.getOptimalNewCameraMatrix(rgbIntrinsics, rgb_d, (rgb_w, rgb_h), alpha)

map_x, map_y = cv2.initUndistortRectifyMap(rgbIntrinsics, rgb_d, None, rgb_new_cam_matrix, (rgb_w, rgb_h), cv2.CV_32FC1)

frameRgb = cv2.remap(frameRgb, map_x, map_y, cv2.INTER_LINEAR)

当将rgb相机畸变矫正后,图像的边缘不平直的部分会被裁切掉一部分。这导致了FOV的损失。为了最大化FOV,可以使用alpha参数0-1来缩放未扭曲的图像,让裁切的部分尽量小一点。

stereo.setAlphaScaling(alpha)

alpha = 0 -无缩放,未失真的图像将与原始图像的大小相同。

alpha = 1 -最大缩放,未失真的图像将是适合原始图像的最大可能的图像。

相关推荐
m0_749492222 小时前
2026平价运动相机选择指南:科美锐(Komery)PX3与另外两款相机的功能取舍拆解
数码相机
沐梯子2 小时前
AI视频工具大战升级!PixPix首发接入MiniMaxH3大战Seedance
数码相机
c#上位机2 小时前
线扫相机的帧触发
数码相机
深视智能科技4 小时前
PIV高速成像系统如何同步?相机、激光与数据传输配置指南
数码相机
c#上位机1 天前
线扫相机的工作原理
数码相机
c#上位机1 天前
线扫相机之采集图像高度
数码相机·opencv·计算机视觉
PHOSKEY3 天前
具身机器人行星滚柱丝杠核心尺寸测量与光子精密QM系列闪测仪应用
数码相机
就是个名称4 天前
cesium 地球地固转地惯
数码相机
AttosTek4 天前
-80℃深度制冷短波红外相机选型指南
数码相机
落苜蓿蓝4 天前
多张覆盖视场的平面棋盘图片; 、对每张图片用 OpenCV 的 findChessboardCorners 检测内角点并用 corn ...
数码相机·opencv·平面