单目定位测距--相似三角形比例计算(python)

本文分享了基于单目摄像头的测距原理及Python代码实现。通过解析相机内参和外部参数,运用三角函数计算物体距离,展示了从理论到实践的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单目测距原理参考博客
在以上博客中,测距原理博主介绍的很好,主要贴下自己写的python测试代码,做个简单的记录。

import os
import cv2
import time
import numpy as np
import math

def dist_cab():
    //图像分辨率
    frame_width = 1280
    frame_height = 720
    
    //相机内参
    camera_cx = 628.060
    camera_cy = 345.411
    camera_fx = 716.168
    camera_fy = 715.988
    
    //标定点像素、相机高度、标定点实际距离
    cab_pixel_y = 650
    camera_h = 0.735*1000
    cab_dist = 1.61*1000
    
    //求主点对应的实际距离,与相机的角度
    a1 = math.atan(camera_h / cab_dist)
    a2 = math.atan((cab_pixel_y - camera_cy) / camera_fy)
    a3 = a1 - a2
    op_dist = camera_h * math.atan(a3)
    
    //求任意像素点的y方向实际距离
    if_pixel_y = 600
    b1 = math.atan((if_pixel_y - camera_cy) / camera_fy)
    b2 = a3 + b1
    if_dist = camera_h / math.tan(b2)
    print(if_dist)
    
    //求该像素点的x方向实际距离
    if_pixel_x = 900
    pixel_y_dist = math.sqrt(pow((if_pixel_y - camera_cy), 2) + pow(camera_fy, 2))
    dist_y_slope = camera_h / math.sin(b2)
    dist_x = dist_y_slope * (if_pixel_x - camera_cx) / pixel_y_dist
    print(dist_x)
    
if __name__ == '__main__':
    dist_cab()
    print('exit...')

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值