背景:TOF相机输出的RGB分辨率为1280×960,IR分辨率为960×480,深度图分辨率为960×480
IR图与深度图为同一摄像头,时间与空间均一致
需完成RGB上的UVZ,转为IR坐标系下的UVZ
实现流程:
代码:
import cv2
import os
import numpy as np
import json
import matplotlib.pyplot as plt
from PIL import Image, ImageTk,ImageDraw
depth_f =[492.901337,492.602295]#ir相机的内参_fx,fy
depth_c =[317.839783,273.10556]#ir相机的内参_u0,v0
rgb_f=[823.490845,822.888733]#rgb相机的内参_fx,fy
rgb_c=[641.306152,461.077454]#rgb相机的内参_u0,v0
#RT矩阵
depth_rgb_r=np.array([[0.999890447,0.00268923747,0.0145565625]
,[-0.00259461207,0.999975383,-0.00651552388]
,[-0.0145737259,0.00647704117,0.999872804]])
depth_rgb_t=np.array([19.7443695,-0.172736689,0.248689786])
def depth_pixel2cam(depth, c, f):
#实现像素坐标系下的深度图转为相机坐标系
#depth:深度图
#c,f:depth相机的内参
height=depth.shape[0]
width=depth.shape[1]
cam_coord = np.zeros((