奥比中光Orbbec Astra Pro RGBD 3D视觉传感器 之 前言

这是一个新的方向,但是我还是理好思路再深入比较好,可以写的东西更多是汇总,但写出来第一个目的是利己的。理解透彻之后再利他。

接触这个的需求就是实现测试物体尺寸。

Orbbec的资料比较分散,有业务人员给的,有英文网站下载的,有论坛下载的。陆续都下载看了,还是按照以前的学习新的东西的方法,先试用,再Demo,再开发实现自己的需求。

试用

试用就是完全不写代码,使用调试工具之类的小软件来直观的感受3D视觉传感器与普通的相机的不同。普通的相机没有深度的概念,而3D摄像头是有的,这是最大最明显的区别。

这里写图片描述

这是一个我照下的只有深度信息的“照片”,我坐在电脑前,带了一个帽子。后面白色是墙。所谓深度就是把鼠标放到对就的位置,可以出来3D坐标。

深度值

这里写图片描述

这里写图片描述

物体尺寸

这里写图片描述

通过这些例子,立刻明白了,所谓3D摄像头和普通相机的区别了,普通相机是没有办法测量物体尺寸的。

打开深度图方法

双击运行ImageJ.exe,导入保存的raw图片
这里写图片描述
这里写图片描述

深度图生成方法

这就是需要有实物了,需要有Orbbec Astra Pro 设备,装上驱动,运行NiViewer后,按下C键保存深度图和彩色图。

其他

待继

你可以使用以下示例代码来开始使用奥比中光OrbbecAstra深度摄像头: ```cpp #include <astra/astra.hpp> #include <iostream> class SampleFrameListener : public astra::FrameListener { public: void on_frame_ready(astra::StreamReader& reader, astra::Frame& frame) override { const astra::DepthFrame depthFrame = frame.get<astra::DepthFrame>(); if (!depthFrame.is_valid()) { std::cout << "Invalid depth frame!" << std::endl; return; } const int width = depthFrame.width(); const int height = depthFrame.height(); const int frameIndex = depthFrame.frame_index(); std::cout << "Depth frame " << frameIndex << " ready: " << width << "x" << height << std::endl; const astra::Vector3f* depthData = depthFrame.data(); const int numPixels = width * height; for (int i = 0; i < numPixels; ++i) { const float depth = depthData[i].z; // 处理深度数据,例如将其可视化或进行其他计算 } } }; int main(int argc, char** argv) { astra::initialize(); astra::StreamSet streamSet; astra::StreamReader reader = streamSet.create_reader(); SampleFrameListener listener; reader.stream<astra::DepthStream>().start(); reader.add_listener(listener); while (true) { astra_update(); // 执行其他任务,或者在这里添加退出循环的条件 } astra::terminate(); return 0; } ``` 这个示例代码演示了如何使用Astra SDK来读取并处理深度帧数据。你可以在`on_frame_ready`函数中处理深度数据,例如将其可视化或进行其他计算。 请确保已经正确安装Astra SDK,并将其相关库文件和头文件链接到你的项目中。此外,你还需要为你的程序提供适当的权限来访问Astra摄像头设备。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值