CAD GIS开发 2025-06-19 21:49 采纳率: 11.8%
浏览 12

给定一个图像中目标的像素坐标 (u, v),计算它相对于望远镜中心方向

已知:

相机与望远镜之间的物理位置偏移量(单位:mm):

水平偏移(x):tx = -55.5 mm(相机在右 → 望远镜相对于相机在左)

垂直偏移(y):ty = -118 mm(相机在下 → 望远镜在上)

望远镜中心与相机中心的像素偏移(单位:px):

dx = -79 px(望远镜中心在图像中比相机中心更靠左)

dy = -235 px(更靠上)

相机的内参(焦距等)

焦距(单位 mm):f_mm = 14.46

图像尺寸:3840×3104

传感器尺寸(例如 IMX258):sensor_width = 5.92 mm, sensor_height = 4.46 mm

你想要实现的是:

✅ 给定一个图像中目标的像素坐标 (u, v),计算它相对于望远镜中心方向的:

水平夹角(Yaw)

垂直夹角(Pitch)

img

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-06-19 21:49
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解答

    计算图像中目标的像素坐标 (u, v) 相对于望远镜中心方向的偏移量,可以使用以下公式:

    1. 首先,计算相机与望远镜之间的物理位置偏移量的像素坐标:

    水平偏移:tx_pixel = tx / fx 垂直偏移:ty_pixel = ty / fy

    其中,fx 和 fy 是相机的焦距(单位:像素)。

    1. 然后,计算目标像素坐标 (u, v) 相对于望远镜中心方向的偏移量:

    水平偏移:dx = (u - cx) / fx 垂直偏移:dy = (v - cy) / fy

    其中,cx 和 cy 是望远镜中心的像素坐标。

    1. 最后,计算目标像素坐标 (u, v) 相对于望远镜中心方向的偏移量:

    dx_total = dx + tx_pixel dy_total = dy + ty_pixel

    其中,dx_total 和 dy_total 是目标像素坐标 (u, v) 相对于望远镜中心方向的总偏移量。

    代码

    import cv2
    
    # 相机焦距
    fx = 1000
    fy = 1000
    
    # 望远镜中心坐标
    cx = 320
    cy = 240
    
    # 目标像素坐标
    u = 200
    v = 150
    
    # 相机与望远镜之间的物理位置偏移量
    tx = -55.5
    ty = -118
    
    # 计算偏移量
    tx_pixel = tx / fx
    ty_pixel = ty / fy
    
    dx = (u - cx) / fx
    dy = (v - cy) / fy
    
    dx_total = dx + tx_pixel
    dy_total = dy + ty_pixel
    
    print("水平偏移:", dx_total)
    print("垂直偏移:", dy_total)
    

    注释

    在上面的代码中,我们首先计算相机与望远镜之间的物理位置偏移量的像素坐标,然后计算目标像素坐标 (u, v) 相对于望远镜中心方向的偏移量。最后,我们计算目标像素坐标 (u, v) 相对于望远镜中心方向的总偏移量。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月19日