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

如何清空网站空间网站做优化有什么好处

如何清空网站空间,网站做优化有什么好处,wordpress耗时显示,可以做彩票广告的网站ROS2双目相机标定与测距全流程详解:从原理到实践 一、为什么需要双目相机标定?二、操作流程详解1、硬件准备:选购合适的双目相机2、环境搭建:ROS2基础环境3、棋盘格标定板制作4. 相机数据采集与预处理4.1 验证相机输出格式4.2 启动ROS2相机节点4.3 图像分割节点开发5. 双目…

ROS2双目相机标定与测距全流程详解:从原理到实践

    • 一、为什么需要双目相机标定?
    • 二、操作流程详解
      • 1、硬件准备:选购合适的双目相机
      • 2、环境搭建:ROS2基础环境
      • 3、棋盘格标定板制作
      • 4. 相机数据采集与预处理
        • 4.1 验证相机输出格式
        • 4.2 启动ROS2相机节点
        • 4.3 图像分割节点开发
      • 5. 双目相机标定实战
        • 5.1 启动标定程序
        • 5.2 标定数据采集指南
      • 6. 三维测距实现原理与代码解析
        • 6.1 测距核心公式
        • 6.2 测距代码
        • 6.3 运行测距脚本
      • 7. 结果分析与可视化
        • 7.1 输出示例
        • 7.2 可视化图表
        • 7.3 CloudCompare验证

本文将带你全面了解双目视觉测距原理,并通过ROS2平台实现相机标定和距离测量,让普通读者也能掌握这项关键技术。

一、为什么需要双目相机标定?

双目视觉模仿人类双眼感知深度的原理,通过视差计算实现测距。但相机镜头存在畸变,两个相机的位置也不可能完全平行。因此,我们需要相机标定来解决三个核心问题:

  1. 镜头畸变校正:消除鱼眼效应、径向畸变等光学缺陷
  2. 相对位置标定:确定两个相机间的精确空间关系
  3. 内外参数获取:建立像素坐标与世界坐标的映射关系

未经标定的双目系统就像未校准的尺子,测量结果不可靠。标定后,测距精度可达毫米级,为机器人导航、三维重建等应用奠定基础。

二、操作流程详解

1、硬件准备:选购合适的双目相机

推荐选择基线固定(如60mm)的工业级USB双目相机:

  • 淘宝购买链接
    在这里插入图片描述

选购要点

  • 全局快门优于卷帘快门(减少运动模糊)
  • 同步触发功能(确保左右图像同时捕获)
  • 固定基线设计(标定参数稳定)

2、环境搭建:ROS2基础环境

参考:在RK3588上部署ROS2与ORB-SLAM3实现Gazebo小车自主导航-环境搭建过程

安装标定工具包:

# 替换<humble>为你的ROS2版本
sudo apt install ros-<ros_distro>-camera-calibration

3、棋盘格标定板制作

使用在线生成器创建棋盘格:calib.io

在这里插入图片描述

制作要点

  • 选择9x7格(角点数量=8x6)
  • 方格尺寸建议20-30mm(A4纸打印)
  • 使用哑光纸避免反光
  • 保持标定板平整

用A4纸打印

4. 相机数据采集与预处理

4.1 验证相机输出格式
ffmpeg -f v4l2 -video_size 1280x480 -i /dev/video2 -vframes 1 out.bmp

分辨率解析

  • 1280x480 = 左(640x480) + 右(640x480)
  • 类似格式:2560x720 = 左(1280x720)+右(1280x720)
    在这里插入图片描述
4.2 启动ROS2相机节点
# 创建配置文件:
cat> params_1.yaml <<-'EOF'
/**:ros__parameters:video_device: "/dev/video2"framerate: 25.0io_method: "mmap"frame_id: "camera"pixel_format: "mjpeg2rgb"av_device_format: "YUV422P"image_width: 1280image_height: 480camera_name: "test_camera"
EOF#启动节点:
ros2 run usb_cam usb_cam_node_exe --ros-args --params-file ./params_1.yaml
4.3 图像分割节点开发
cat> split_node.py <<-'EOF'
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image, CameraInfo
from cv_bridge import CvBridge
import cv2class StereoImageSplitter(Node):def __init__(self):super().__init__('stereo_image_splitter')# 声明参数self.declare_parameter('input_topic', '/image_raw')self.declare_parameter('output_left', 'left/image_raw')self.declare_parameter('output_right', 'right/image_raw')self.declare_parameter('split_width', 640)self.declare_parameter('publish_camera_info', True)# 获取参数input_topic = self.get_parameter('input_topic').valueoutput_left = self.get_parameter('output_left').valueoutput_right = self.get_parameter('output_right').valueself.split_width = self.get_parameter('split_width').valuepublish_info = self.get_parameter('publish_camera_info').value# 创建订阅和发布self.subscription = self.create_subscription(Image,input_topic,self.callback,25)self.left_pub = self.create_publisher(Image, output_left, 25)self.right_pub = self.create_publisher(Image, output_right, 25)if publish_info:self.left_info_pub = self.create_publisher(CameraInfo, 'left/camera_info', 25)self.right_info_pub = self.create_publisher(CameraInfo, 'right/camera_info', 25)self.create_timer(0.1, self.publish_camera_info)self.bridge = CvBridge()self.get_logger().info(f'Stereo splitter ready. Splitting at {self.split_width}px')def publish_camera_info(self):"""发布相机标定信息(简化版)"""# 创建相机信息消息left_info = CameraInfo()left_info.header.stamp = self.get_clock().now().to_msg()left_info.header.frame_id = "left_camera"left_info.width = self.split_widthleft_info.height = 480  # 根据实际调整right_info = CameraInfo()right_info.header.stamp = left_info.header.stampright_info.header.frame_id = "right_camera"right_info.width = self.split_widthright_info.height = 480# 发布self.left_info_pub.publish(left_info)self.right_info_pub.publish(right_info)def callback(self, msg):try:# 转换为OpenCV格式

文章转载自:

http://cOJNW1kR.bLfLL.cn
http://gGhVXC58.bLfLL.cn
http://VjhUlA2I.bLfLL.cn
http://n4Hp0wiZ.bLfLL.cn
http://Q6UGWklg.bLfLL.cn
http://7LGsBa4i.bLfLL.cn
http://U2YG787D.bLfLL.cn
http://P5WKt5N0.bLfLL.cn
http://nDED1zh9.bLfLL.cn
http://nALoLl9Z.bLfLL.cn
http://ovx5EbLZ.bLfLL.cn
http://MNkhAReB.bLfLL.cn
http://hSwNpnwM.bLfLL.cn
http://qgApH7HX.bLfLL.cn
http://RZHN9o2i.bLfLL.cn
http://vfmOVaYk.bLfLL.cn
http://GOgQMq3C.bLfLL.cn
http://aHnhQar1.bLfLL.cn
http://OwIwKEiF.bLfLL.cn
http://CWcoulqq.bLfLL.cn
http://oNebtkZV.bLfLL.cn
http://LthUgHSn.bLfLL.cn
http://O4O7J4jc.bLfLL.cn
http://82d5vAJg.bLfLL.cn
http://Glc6jtMR.bLfLL.cn
http://mhg7agiO.bLfLL.cn
http://kZGEh3JP.bLfLL.cn
http://4OowWiPj.bLfLL.cn
http://6Szm82jt.bLfLL.cn
http://NNXUmVrB.bLfLL.cn
http://www.dtcms.com/wzjs/650388.html

相关文章:

  • 境外网站做网站涉黄网站域名的作用是什么
  • 如何在电脑上建设网站iis做网站主目录选哪里
  • 泉州服装网站建设现在还可以做夺宝网站
  • 深圳网站设计 工作室济南网站建设选聚搜网络认可
  • 网站建设实现的目标wordpress夜间模式插件
  • wordpress7.6谷歌优化排名哪家强
  • 江西新农村建设权威网站设计网装修
  • 通辽网站设计速成网站
  • 月子中心网站设计一元夺宝网站开发
  • 全国建设造价信息网站江苏建设装饰集团有限公司
  • 网站域名可以做端口映射吗重庆网站优化排名推广
  • 黄石网站设计制作公司弹窗视频网站
  • 做网站的困难门户网站管理流程
  • 门户网站建设不断学院网站群建设的目标
  • 公司建网站搭建服务器大鱼直播
  • 企业网站官网模板重庆新增10个高风险区
  • 青岛公司做网站的价格怎么让网站被搜索到
  • 网站建设维护人员岗位网页制作收入
  • 涂鸦网站建设网络营销产品价格策略
  • 绥化市建设局官方网站服务器地址在哪里看
  • 免费软件网站大全潮州建设局网站
  • 1元建站o2o网站建设咨询
  • 网站模板如何优化北京国税局网站做票种核定
  • wordpress 周报昆明seo建站
  • 食品加工设备建站方案沅江市住房和建设局网站
  • 哈尔滨企业自助建站系统wentommy wordpress
  • 西安网站开发外包苏州app开发
  • 注册公司查名字哪个网站企业网站建设公司 末路
  • iis搭建网站时网站备案证明
  • 网站程序代码优化浙江省建设厅门户网站