RealSense、ZED 和奥比中光Astra几款主流相机介绍及应用
以下是英特尔 RealSense、Stereolabs ZED 和奥比中光Astra几款相机的详细对比,包括参数、性能以及二次开发等支持,附带代码示例。
详细信息对比和二次开发示例
1. 英特尔 RealSense (例如 D435/D455)
- 深度技术:立体视觉 + 红外投影
- 分辨率:
- D435: 1280x720 @ 30fps
- D455: 1920x1080 @ 30fps
- 工作范围:0.2 米到 10 米
- 视场角 (FOV):宽度 86°,高度 57°
- 通讯接口:USB 3.0
- SDK 支持: Intel RealSense SDK
- 二次开发支持:C++, Python, ROS 等
- 安装依赖:
pip install pyrealsense2
代码示例(Python):
import pyrealsense2 as rs
import numpy as np
import cv2# 创建管道
pipeline = rs.pipeline()# 配置流
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)# 启动流
pipeline.start(config)try:while True:frames = pipeline.wait_for_frames()depth_frame = frames.get_depth_frame()color_frame = frames.get_color_frame()if not depth_frame or not color_frame:continue# 将帧转换为numpy数组depth_image = np.asanyarray(depth_frame.get_data())color_image = np.asanyarray(color_frame.get_data())# 显示图像cv2.imshow('Color', color_image)cv2.imshow('Depth', depth_image)if cv2.waitKey(1) & 0xFF == ord('q'):break
finally:pipeline.stop()cv2.destroyAllWindows()
代码示例(C++):
#include <librealsense2/rs.hpp> // Include RealSense Cross Platform API
#include <iostream>int main() {// Create a RealSense pipeliners2::pipeline p;// Start the pipeline with default configurationp.start();while (true) {// Wait for a new framers2::frameset frames = p.wait_for_frames();// Get the depth framers2::depth_frame depth = frames.get_depth_frame();// Get the color framers2::frame color = frames.get_color_frame();if (!depth || !color) continue;// Get the dimensions of the imageint width = depth.get_width();int height = depth.get_height();std::cout << "Depth Frame: " << width << "x" << height << std::endl;// Process the images (for demonstration, we just print the size)// Here you can add your own image processing code// Break the loop on a specific condition (e.g., pressing a key)// For this example, we'll just run indefinitely}return 0;
}
2. ZED (Stereolabs)
- 深度技术:立体视觉 + IMU
- 分辨率:
- ZED 2: 4416x1242 @ 15fps(720p模式约 60fps)
- 工作范围:0.5 米到 20 米
- 视场角 (FOV):水平 110°,垂直 75°
- 通讯接口:USB 3.0
- SDK 支持:ZED SDK
- 二次开发支持:C++, Python, Unity, ROS 等
安装依赖:
参考 ZED SDK 安装指南
代码示例(Python):
import sys
import time
import pyzed.sl as sl# 创建相机对象
zed = sl.Camera()# 配置相机
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.HD720
init_params.depth_mode = sl.DEPTH_MODE.PERFORMANCE
zed.open(init_params)while True:# 捕获图像if zed.grab() == sl.ERROR_CODE.SUCCESS:image = sl.Mat()zed.retrieve_image(image, sl.VIEW.COLOR)depth = sl.Mat()zed.retrieve_measure(depth, sl.MEASURE.DEPTH)# 获取图像数据image_ocv = image.get_data()depth_ocv = depth.get_data()# 显示图像cv2.imshow("ZED Color", image_ocv)cv2.imshow("ZED Depth", depth_ocv)if cv2.waitKey(1) & 0xFF == ord('q'):break# 关闭相机
zed.close()
代码示例(C++):
#include <sl/Camera.hpp>int main(int argc, char **argv) {sl::Camera zed;sl::InitParameters init_params;init_params.camera_resolution = sl::RESOLUTION::HD720;init_params.depth_mode = sl::DEPTH_MODE::PERFORMANCE;// 开始相机if (zed.open(init_params) != sl::ERROR_CODE::SUCCESS) {std::cerr << "Error opening ZED camera." << std::endl;return EXIT_FAILURE;}sl::Mat image, depth;while (true) {if (zed.grab() == sl::ERROR_CODE::SUCCESS) {zed.retrieveImage(image, sl::VIEW::LEFT);zed.retrieveMeasure(depth, sl::MEASURE::DEPTH);// 显示图像和深度cv::imshow("ZED Image", image.getCvMat());cv::imshow("ZED Depth", depth.getCvMat());if (cv::waitKey(1) == 'q') break;}}zed.close();return EXIT_SUCCESS;
}
3. 奥比中光(Orbbec)
- 深度技术:结构光
- 分辨率:
- Astra: 640x480 @ 30fps
- Astra Pro: 1280x720 @ 30fps
- 工作范围:0.4 米到 8 米
- 视场角 (FOV):水平 60°,垂直 49°
- 通讯接口:USB 2.0 / USB 3.0
- SDK 支持:奥比中光 SDK
- 二次开发支持:C++, C#, Python, Unity 等
- 安装依赖:
参考 奥比中光 SDK 安装指南
代码示例(Python):
import numpy as np
import cv2
import openni2# 初始化
openni2.initialize()
dev = openni2.Device.open_any()
depth_stream = dev.create_depth_stream()
color_stream = dev.create_color_stream()# 开启流
depth_stream.start()
color_stream.start()while True:depth_frame = depth_stream.read_frame()color_frame = color_stream.read_frame()depth_data = np.frombuffer(depth_frame.get_buffer_as_uint16(), dtype=np.uint16)color_data = np.frombuffer(color_frame.get_buffer_as_uint8(), dtype=np.uint8)# 处理深度数据depth_image = depth_data.reshape((depth_frame.height, depth_frame.width))color_image = color_data.reshape((color_frame.height, color_frame.width, 3))# 显示图像cv2.imshow('Color Image', color_image)cv2.imshow('Depth Image', depth_image)if cv2.waitKey(1) & 0xFF == ord('q'):break# 停止流
depth_stream.stop()
color_stream.stop()
openni2.unload()
代码示例(C++):
#include <OpenNI.h>
#include <iostream>int main() {openni::OpenNI::initialize();openni::Device device;if (device.open(openni::ANY_DEVICE) != openni::STATUS_OK) {std::cerr << "Could not open device." << std::endl;return -1;}openni::VideoStream depthStream, colorStream;depthStream.create(device, openni::SENSOR_DEPTH);colorStream.create(device, openni::SENSOR_COLOR);depthStream.start();colorStream.start();openni::VideoFrameRef depthFrame, colorFrame;while (true) {depthStream.readFrame(&depthFrame);colorStream.readFrame(&colorFrame);// 显示深度和颜色// 需添加显示代码 (如使用 OpenCV)if (/* 检测退出条件 */) break;}depthStream.stop();colorStream.stop();device.close();openni::OpenNI::shutdown();return 0;
}
综合参数对比
参数 | 英特尔 RealSense | Stereolabs ZED | 奥比中光 |
---|---|---|---|
深度技术 | 立体视觉 + 红外投影 | 立体视觉 + IMU | 结构光 |
分辨率 | D435: 1280x720; D455: 1920x1080 | ZED 2: 4416x1242 | Astra: 640x480; Pro: 1280x720 |
工作范围 | 0.2 米到 10 米 | 0.5 米到 20 米 | 0.4 米到 8 米 |
视场角 (FOV) | 86° x 57° | 110° x 75° | 60° x 49° |
通讯接口 | USB 3.0 | USB 3.0 | USB 2.0 / USB 3.0 |
SDK | Intel RealSense SDK | ZED SDK | 奥比中光 SDK |
二次开发支持 | 丰富的文档与社区 | 详细API与示例 | 文档与多平台支持 |
参数 | Intel RealSense D435i | ZED Mini | 奥比中光 Astra Pro |
---|---|---|---|
分辨率 | 1280x720 (RGB), 640x480 (Depth) | 1280x720 (RGB), 720p (Depth) | 1280x720 (RGB), 640x480 (Depth) |
深度范围 | 0.3m - 10m | 0.3m - 20m | 0.5m - 8m |
帧率 | 30 fps (depth + RGB) | 60 fps (depth + RGB) | 30 fps (depth + RGB) |
通讯接口 | USB 3.0 | USB 3.0 | USB 3.0 |
视场角 | 69.4° x 42.5° | 110° x 80° | 90° x 60° |
综合性能对比
-
计算能力:
- RealSense 配备 IMU,适合移动设备和机器人。
- ZED 提供高精度深度数据和较大的视场角,适合 AR/VR 应用。
- 奥比中光专注于深度图像和手势识别等应用,适合人机交互。
-
使用场景:
- RealSense: 机器人视觉、手势识别。
- ZED: 虚拟现实、增强现实、3D 映射。
- 奥比中光: 智能家居、互动游戏。
总结
以上是对三种不同厂家相机的基本信息对比及二次开发示例,可作为小白简单了解和熟悉。不同的项目需求可以选择不同的相机,根据具体应用场景进行开发。
相关文章:
RealSense、ZED 和奥比中光Astra几款主流相机介绍及应用
以下是英特尔 RealSense、Stereolabs ZED 和奥比中光Astra几款相机的详细对比,包括参数、性能以及二次开发等支持,附带代码示例。 详细信息对比和二次开发示例 1. 英特尔 RealSense (例如 D435/D455) 深度技术:立体视觉 红外投影分辨率&a…...

启动 Ntopng 服务前需先启动 redis 服务及 Ntopng 常用参数介绍
启动Ntopng服务之前需要先启动redis服务,因为Ntopng服务依赖于redis服务的键值存储。 服务重启 服务启动 Ntopng常用参数: -d 将 Ntopng 进程放入后台执行。默认情况下,Ntop 在前台运行。 -u 指定启动Ntopng执行的用户,默认为…...

vector的模拟实现以及oj题(2)
前言 上篇博客介绍了大部分vector的接口,其中包括begin()、end()、const begin()、 const end()、size、capacity、reserve、empty、push_back、pop_back、insert、operator[],这篇博客将介绍剩下的部分接口,以及一些oj题解法和思路。 vect…...

数据技术进化史:从数据仓库到数据中台再到数据飞轮的旅程
随着大数据时代的到来,数据已经成为企业的核心资产之一。在过去几十年间,数据技术也随之不断演进,从早期的数据仓库到近年来热门的数据中台,再到正在快速发展的数据飞轮概念,每一步都是技术革新的体现。 一、数据仓库&…...
JAVA JDK华为云镜像下载,速度很快
直达下载地址 https://repo.huaweicloud.com/java/jdk/ https://repo.huaweicloud.com/java/jdk/欢迎各位收藏享用!!!...
【RKNN系列】官方函数:querystring
querystring 函数 功能 查询获取当前芯片平台RGA硬件版本与功能支持信息,以字符串的形式返回。 语法 std::string querystring(int query_type);参数 query_type: 要查询的 RGA 信息类型(整数) 描述 这个函数用于获取特定类型的 RGA 信…...

Stable Diffusion零基础学习
Stable Diffusion学习笔记TOP14 _插件篇之ControlNet功能篇 ControlNet目前支持的10多种预处理器,根据数据检测种类可分为两种类型: 1、功能型:拥有着不同的能力 2、构图型:控制着SD扩散图形的构图规则 部分未编写预处理器的功…...

C#基于SkiaSharp实现印章管理(9)
将印章设计模块设计的印章保存为图片并集中存放在指定文件夹内。新建印章应用项目,主要实现对图片及PDF文件加盖印章功能。本文实现给图片加盖印章功能。 给图片加盖印章的逻辑比较简单,就是将印章图片绘制到图片指定位置,使用SKControl控…...

研究生如何利用ChatGPT帮助开展日常科研工作?
小白可做!全自动AI影视解说一键成片剪辑工具https://docs.qq.com/doc/DYnl6d0FLdHp0V2ll 作为当代研究生,科研工作三部曲----读文献、开组会、数据分析。无论哪一个,都令研究生们倍感头疼,简直就是梦魇。每当看到导师发来的消息&a…...

汽车零部件开发流程关键阶段
目录 1、定点阶段 1.1、定点前的准备工作 1.2、定点决策过程 1.3、定点后的工作交接 2、A样阶段:设计验证与基本功能实现 2.1、样件制作:从设计图纸到实物转化 2.2、功能测试:初步验证与性能评估 2.3、评估与优化:A样阶段…...

Magnific推V2图像生成服务 可直出4K图像
人工智能 - Ai工具集 - 集合全球ai人工智能软件的工具箱网站 近日,AI图像处理领域再迎重大突破,Magnific推出的V2图像生成服务引领行业潮流。此次升级,不仅使Magnific从高端软件跻身为顶级AI图像生成器,更彰显了其在技术创新及用…...

E9OA解决文档附件没有关联文档正文问题
业务背景: OA通知流程已经提交后在审批中发现漏上传了文档附件。临时放开审批结点文档附件编辑,请审批结点领导将附件上传后再审批。最终在流程中查看可以看到正文和附件,但是在通知文档正文中没有关联文档附件,导致大多数人员在通…...
EasyExcel日常使用总结
文章目录 概要引入依赖常用操作方法折叠或隐藏列折叠或隐藏行单元格样式单行表头设置多行表头设置多个sheet写入自动列宽 概要 EasyExcel日常使用总结。 引入依赖 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</a…...

人只活一次,活出一道光吧
人只活一次, 你怎么舍得让自己的短暂的一生是丑陋的, 你怎么舍得让自己短暂的一生, 只是在往下坠落, 即便是坠落, 也应该具有落日般的华丽吧, 你会漫漫的活成一束光, 谁若接近你, 就是接近光, 【人人都想向上,人人都想老而不衰,但现实是当你想活成一道光…...
sqli-labs:1~16(sql注入点稳定判断语句、全回显半回显报错回显无回显利用思路、sql注入tips)
怎么验证sql注入的存在呢? 首先,双引号单引号注入,看看有没有报错,或者与正常参数的区别,有报错说明大概率可以注入成功,但是,很可能单引号和双引号测试可能没有报错回显,或者与正常…...

springboot农产品销售信息微信小程序—计算机毕业设计源码35557
摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。每天都有大量的农产品需要通过网络发布,为此,本人开发了一个基于springboot农产品销售信息微信小程序。 对于本农产品销售信息系统的设计来说,它主要是采用后台采…...

HuggingChat macOS 版现已发布
Hugging Face 的开源聊天应用程序 Hugging Chat,现已推出适用于 macOS 的版本。 主要特点 Hugging Chat macOS 版本具有以下亮点: 强大的模型支持: 用户可以一键访问多个顶尖的开源大语言模型,包括 Qwen 2.5 72B、Command R、Phi 3.5、Mistral 12B 等等&…...
C#:动态为Object对象添加新属性的方法
在C#中,object 类型本身是一个基础类型,它不支持直接添加属性,因为 object 并不具备定义属性的能力(它不支持任何接口或基类中的属性,除非通过类型转换)。然而,有几种方法可以在运行时模拟给对象…...

我常用的几个Python金融数据接口库,非常好用~
在金融分析和量化投资领域,Python已成为最受欢迎的编程语言之一。这主要归功于其丰富的库和框架,它们提供了处理和分析金融数据所需的工具,而且还有大量免费实时的金融股票数据供你分析研究。 以下是六个最常用的Python金融数据接口库&#x…...

【机器学习】ID3、C4.5、CART 算法
目录 常见的决策树算法 1. ID3 2. C4.5 3. CART 决策树的优缺点 优点: 缺点: 决策树的优化 常见的决策树算法 1. ID3 ID3(Iterative Dichotomiser 3)算法使用信息增益作为特征选择的标准。它是一种贪心算法,信…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...