什么网站不能备案,扁平化 手机网站首页,大学生网络营销策划书,wordpress 描述▌低畸变标准镜头的OAK相机RGB-D对齐的方法
OAK相机内置的RGB-D管道会自动将深度图和RGB图对齐。其思想是将深度图像中的每个像素与彩色图像中对应的相应像素对齐。产生的RGB-D图像可以用于OAK内置的图像识别模型将识别到的2D物体自动映射到三维空间中去#xff0c;或者产生的…▌低畸变标准镜头的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 -最大缩放未失真的图像将是适合原始图像的最大可能的图像。