像素深度转空间坐标(去畸变) opencv python


def pixel2world(depth_in_meters, cx, cy, intrinsic, camera_distCoeffs=None):
    """
    intrinsic:
        Input 3x3 camera intrinsic matrix
    camera_distCoeffs: 
        Input vector of distortion coefficients (k1, k2, P1, P2, K3, k4, k5, k6)
    """
    if camera_distCoeffs is None:
        x = (cx - intrinsic[0,2]) / intrinsic[0,0]
        y = (cy - intrinsic[1,2]) / intrinsic[1,1]
    else:
        udpixel = cv2.undistortPoints(np.array([[cx, cy]], np.float32), intrinsic, camera_distCoeffs)
        x = udpixel.flatten()[0]
        y = udpixel.flatten()[1]
    return np.array([x, y, 1.0]) * depth_in_meters

camera_intrinsic = np.array([[fx, 0, cx], [0, fy, cy], [0, 0, 1]])
camera_distCoeffs = [k1, k2, p1, p2, k3]

depth = 1.0
point3d = pixel2world(depth, pixel_x, pixel_y, camera_intrinsic, camera_distCoeffs)    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值