当前位置: 首页 > news >正文

优品ppt模板免费下载网站海南科技职业大学教务网络管理系统

优品ppt模板免费下载网站,海南科技职业大学教务网络管理系统,桌面应用程序开发,河南政务网站建设排名文章目录 前言一、计算思路二、代码三、结果 前言 本本篇博客介绍一种非常简单粗暴的方法#xff0c;做到跨相机像素匹配。已知各相机内外参#xff0c;计算共视区域像素投影#xff08;不需要计算图像特征#xff09;。废话不多说#xff0c;直接来#xff0c;见下图。… 文章目录 前言一、计算思路二、代码三、结果 前言 本本篇博客介绍一种非常简单粗暴的方法做到跨相机像素匹配。已知各相机内外参计算共视区域像素投影不需要计算图像特征。废话不多说直接来见下图。 同一时刻相机A与相机B的图 相机A 相机B 问相机 A 检测出目标1 box位置如何计算得出目标1在相机 B 中像素的位置 一、计算思路 取相机 A 目标1中一个像素点 (Ua Va)计算改点在相机A中的相机坐标系坐标 (Xa,Ya,Za)相机 A 坐标转化到相机 B 下的相机坐标 (Xb,Yb,Zb)(Xb,Yb,Zb) 转化到像素坐标 (Ub,Vb) 第2点与第3点中像素坐标转化到相机坐标。 其中Zcamera 可以近似求出。看过之前博客的朋友应该可以明白具体计算方式代码会全部给出。 第3点就是一个三维坐标系旋转平移变化。 二、代码 import yaml import numpy as np import cv2def read_yaml(path):with open(path, r, encodingutf-8) as f:result yaml.load(f.read(), Loaderyaml.FullLoader)return resultdef get_r_t_mtx(path, f_r_b_l):sensor_list [front_center, right_center, back_center, left_center]yaml_result read_yaml(path) # 读取yaml配置文件hres_pitch yaml_result[sensor_list[f_r_b_l]][pitch]res_h yaml_result[sensor_list[f_r_b_l]][height]res_r np.array(yaml_result[sensor_list[f_r_b_l]][rotation]).reshape(3, 3)res_t np.array(yaml_result[sensor_list[f_r_b_l]][translation]).reshape(3, 1)res_mtx np.array(yaml_result[sensor_list[f_r_b_l]][K]).reshape(3, 3)return res_pitch, res_h, res_mtx, res_r, res_t# 近似计算相机坐标系 Zcamera def get_camera_z(children, pixe_y):pitch, h, K, *_ childrensigma np.arctan((pixe_y - K[1][2]) / K[1][1])z h * np.cos(sigma) / np.sin(sigma pitch) # 深度return zdef get_sensor_pixe(children, parent, x, y, distance):r, t get_two_camera_r_t(children, parent)children_pitch, children_h, children_mtx, *c childrenparent_pitch, parent_h, parent_mtx, *p parentdistance_init distancex (x - children_mtx[0][2]) / children_mtx[0][0]y (y - children_mtx[1][2]) / children_mtx[1][1]coor np.array([x, y, 1]).reshape(3, 1) * distance_initres_coor r coor t # 车体坐标系res_x (res_coor[0] / res_coor[2]) * parent_mtx[0][0] parent_mtx[0][2]res_y (res_coor[1] / res_coor[2]) * parent_mtx[1][1] parent_mtx[1][2]return res_x, res_ydef show_img(img):cv2.namedWindow(show)cv2.imshow(show, img)cv2.waitKey(0)def get_two_camera_r_t(children, parent):*children, children_mtx, children_r, children_t children*parent, parent_mtx, parent_r, parent_t parentres_r np.array(parent_r).T np.array(children_r)res_t np.array(parent_r).T (np.array(children_t) - np.array(parent_t)).reshape(3, 1)return res_r, res_tdef get_uv(point, param):*p, mtx, r, t paramcoor_camera r.T (np.array(point).reshape(3, 1) - t)coor_pixe mtx coor_camera * (1 / coor_camera[2])return coor_pixe[0][0], coor_pixe[1][0]if __name__ __main__:front_img cv2.imread(front_img.jpg)left_img cv2.imread(left_img.jpg)img np.concatenate((left_img, front_img), axis1) # 横向拼接front_param get_r_t_mtx(./sensor_param.yaml, 0)left_param get_r_t_mtx(./sensor_param.yaml, 3)color np.random.randint(0, 255, (3000, 3)) # 随机颜色car_coor [5.41, 6.5, 1.3]camera1 np.ravel(get_uv(car_coor, left_param))camera2 np.ravel(get_uv(car_coor, front_param))print(camera1, camera2)cv2.circle(img, (int(camera1[0]), int(camera1[1])), 1, color[0].tolist(), 2)cv2.circle(img, (int(camera2[0]) 1920, int(camera2[1])), 1, color[1].tolist(), 2)cv2.line(img, (int(camera1[0]), int(camera1[1])), (int(camera2[0] 1920), int(camera2[1])), color[0].tolist(), 2)show_img(img)# print(get_two_camera_r_t(front_param, left_param))# print(front_to_left_r.reshape(-1), \n, front_to_left_t)# distance get_camera_z(left_param, 640)# x1, y1 1429, 488# x2, y2 1509, 637# for x in range(x1, x2, 20):# for y in range(y1, y2, 20):# res_x, res_y get_sensor_pixe(left_param, front_param, x, y, distance)# cv2.circle(img, (int(x), int(y)), 1, color[x].tolist(), 5)# cv2.circle(img, (int(res_x) 1920, int(res_y)), 1, color[x].tolist(), 5)# cv2.line(img, (int(x) , int(y)), (int(res_x) 1920, int(res_y)), color[x].tolist(), 2)# distance get_camera_z(front_param, 649)# x1, y1 271, 469# x2, y2 353, 649# for x in range(x1, x2, 20):# for y in range(y1, y2, 20):# res_x, res_y get_sensor_pixe(front_param, left_param, x, y, distance)# cv2.circle(img, (int(x) 1920, int(y)), 1, color[x].tolist(), 2)# cv2.circle(img, (int(res_x), int(res_y)), 1, color[x].tolist(), 2)# cv2.line(img, (int(x) 1920, int(y)), (int(res_x), int(res_y)), color[x].tolist(), 2)# show_img(img)三、结果
http://www.w-s-a.com/news/714996/

相关文章:

  • 网站建设中网站需求分析设计网站推荐html代码
  • 容易收录的网站台州汇客网站建设
  • 企业网站源码百度网盘下载网站备案号如何查询密码
  • 个人网站建设课程宣传栏制作效果图
  • 自己做的网站能上传吗网上做彩票网站排名
  • 教育培训网站模板下载自己做商务网站有什么利弊
  • 平面设计公司网站兰州室内设计公司排名
  • 个人工作室注册条件温州seo结算
  • 360免费建站系统中国建设银行官网站黄金部王毅
  • 罗源福州网站建设个体户可以网站备案吗
  • 网站开发 专有名词pc网站建设和推广
  • 上海部道网站 建设conoha wordpress
  • 手机测评做视频网站宝塔可以做二级域名网站么
  • 代理公司注册济南重庆seo优化效果好
  • 佛山市骏域网站建设专家徐州网站建设价格
  • 公司做网站多济南好的网站建设公司排名
  • 网站维护的方式有哪几种该网站在工信部的icp ip地址
  • 中小企业服务中心网站建设做考勤的网站
  • 大连网站建设报价wordpress实用功能
  • 学校网站建设自查报告电脑网站制作教程
  • 适合推广的网站世界搜索引擎公司排名
  • 合肥网站建设费用ppt在哪个软件制作
  • 湖南省住房和城乡建设厅门户网站网站建设课程性质
  • 如何设计公司网站公司网站空间要多大
  • 建筑公司网站排名5G网站建设要多少个
  • seo怎样新建网站弹簧东莞网站建设
  • 在线做爰直播网站石家庄房产
  • 建筑网站哪里找拓者设计吧首页
  • 广州网站的建设wordpress注册数学验证码
  • 装修平台自己做网站有几个黄页名录网站开发