(17)深度点云学习--python安装openni打开奥比中光RGBD

news2024/11/28 3:32:49

1、主要参考

(1)安装

点云数据处理之安装python-openni_mengjiexu_cn的博客-CSDN博客_openni python

(2)打开摄像头

 2、安装openni和测试摄像头

2.1 下载安装摄像头驱动

(1)去以下地址下载驱动

https://developer.orbbec.com.cn/download.html?id=32

 

(2)安装后可以在硬件管理中看到设备

 

 

2.2 下载openni(需要用到OpenNI2.dll文件)

(1)在奥比下面的地址下载

https://developer.orbbec.com.cn/download.html?id=65

 

 (2)解压后,将以下1个文件夹、3个文件复制到我们需要的python目录下

OpenNI2文件夹、OpenNI.ini、OpenNI2.dll、OpenNI2.lib

1)来源 

 

2)复制到 

 

2.3使用清华源安装openni

pip install openni -ihttps://pypi.tuna.tsinghua.edu.cn/simple

2.4 测试摄像头

(1)测试代码

from openni import openni2
import numpy as np
import cv2
 

if __name__ == "__main__":
    openni2.initialize()
    dev = openni2.Device.open_any()
    print(dev.get_device_info())

(2)测试结果

3、捕获和显示深度图

(1)测试代码

from openni import openni2
import numpy as np
import cv2
 
 
def mousecallback(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDBLCLK:
        print(y, x, dpt[y, x])
 
 
if __name__ == "__main__":
    openni2.initialize()
    dev = openni2.Device.open_any()
    print(dev.get_device_info())
    depth_stream = dev.create_depth_stream()
    dev.set_image_registration_mode(True)
    depth_stream.start()
    cap = cv2.VideoCapture(1)
    cv2.namedWindow('depth')
    cv2.setMouseCallback('depth', mousecallback)
    while True:
 
        frame = depth_stream.read_frame()
        #转换数据格式
        dframe_data = np.array(frame.get_buffer_as_triplet()).reshape([480, 640, 2])
        dpt1 = np.asarray(dframe_data[:, :, 0], dtype='float32')
        dpt2 = np.asarray(dframe_data[:, :, 1], dtype='float32')
 
        dpt2 *= 255
        #对于为什么要乘于255的解答
        #深度图像的深度值 是按照16位长度(两字节)的数据格式存储的,也可以认为前八位是高字节,后八位是低字节。
        #因此一张深度图像如果是 640480分辨率的话,那么图像字节大小 就是 640480*2,其中一个字节是8位(255)
        dpt = dpt1 + dpt2
        #cv2里面的函数,就是类似于一种筛选
        '假设我们需要让我们的深度摄像头感兴趣的距离范围有差别地显示,那么我们就需要确定一个合适的alpha值,公式为:有效距离*alpha=255,' \
        '假设我们想让深度摄像头8m距离内的深度被显示,>8m的与8m的颜色显示相同,那么alpha=255/(8*10^3)≈0.03,' \
        '假设我们想让深度摄像头6m距离内的深度被显示,>6m的与6m的颜色显示相同,那么alpha=255/(6*10^3)≈0.0425'
        dim_gray = cv2.convertScaleAbs(dpt, alpha=0.17)
        #对深度图像进行一种图像的渲染,目前有11种渲染方式,大家可以逐一去试下
        depth_colormap = cv2.applyColorMap(dim_gray, 2)  # 有0~11种渲染的模式
 
        cv2.imshow('depth', depth_colormap)
 
        ret, frame = cap.read()
        cv2.imshow('color', frame)
 
        key = cv2.waitKey(1)
        if int(key) == ord('q'):
            break
 
    depth_stream.stop()
    dev.close()

(2)测试结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么 OpenCV 计算的视频 FPS 是错的

作者 | 王伟、刘一卓 导读 网络直播功能作为一项互联网基本能力已经越来越重要,手机中的直播功能也越来越完善,电商直播、新闻直播、娱乐直播等多种直播类型为用户提供了丰富的直播内容。 随着直播的普及,为用户提供极速、流畅的直播观看体验…

通过商业智能(BI)可视化数据分析了解布洛芬的产销情况

我们都知道,在我们的生活中,处处都是数据。但是只有数据,比如1、2、45、68、137.5,这些数据单一来看并不能反映任何问题。必须通过数据的分析才能将这些单一、无意义的数字变成我们能了解的信息。简单来说,就是数据≠信…

将多个Word表格中的指定值提取到Excel中,方便查看、统计、汇总。Word精灵

01需求说明 图1是简历样,简历中各项数据都放在表格中。现要求将图2中所有简历表的姓名、性别、出生日期、学历、籍贯、民族等等信息逐一提取出来,整理到Excel中,方便查看及汇总。 图1 简历表 图2 要汇总的简历表 02操作步骤 要提取所有简…

C#启程—开发环境搭建

文章目录ideRider下载和安装创建C#基础工程(.Net_Desktop_Form)Rider去除语法警告C#笔记namespace找不到某个class(命名空间)ide Rider ide我们选择Rider 为何不选vs?vs占硬盘内存太高了(20多G&#xff0…

DATAKIT CrossManager 2022.4 Crack

CrossManager 是一款独立软件,可让您转换大多数 CAD 格式的文件。 使用 Cross Manager,您只需选择一个或多个 CAD 文件,即可将它们自动翻译成您想要的格式。 DATAKIT CrossManager是一款独立软件,可让您转换大多数 CAD 格式的文件…

java对接打码平台用selenium实现对图片验证码识别(对接文档看这一个就够了)

在很多平台软件中,咱们登录之后都有一些验证,例如图片数字验证,还有现在流行的滑块验证码,点选验证码,这么复杂的事情,我们程序员当然要用程序的方式解决啦,所以也有一些平台提供了快捷验证的方…

ElasticSearch的读写更新数据流程

读数据流程 客户端向 Node1(协调节点) 发送获取请求。节点使用文档的 _id 来确定文档属于分片 0 。分片 0 的副本分片存在于所有的三个节点上。为了负载均衡,可以轮询所有节点,最后它将请求转发到 Node 2 。Node 2 将文档返回给 N…

通达信接口最新版wind量化特征

通达信接口最新版wind量化特征 1、通达信接口最新版交易接口用于什么? MetaTrade.dll它是一个股票交易接口,可以用于股票程序交易。通过将你的交易策略编写为代码,并通过调用接口股票、撤单、查询,从而实现股票自动交易的程序化。…

【开发工具】Office Tool Plus 安装 Office

一、安装Office: 第一步:打开Office Tool Plus,没有的去官网下载: Office Tool Plus 官方网站 - 一键部署 OfficeOffice Tool Plus 是一个用于部署、激活 Office、Visio、Project 的小工具。借助本工具,你可以快速地…

web前端期末大作业——开心旅游网站设计与实现(HTML+CSS+JavaScript)

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

STM32F4 | SYSTEM文件夹介绍 | delay文件夹 | sys文件夹 | usart文件夹

文章目录一、delay 文件夹代码介绍1.delay_init 函数2.delay_us 函数3.delay_ms函数二、sys 文件夹代码介绍1.IO 口的位操作实现三、usart 文件夹代码介绍1.printf 函数支持在 新建工程模板——库函数版本中,我们用到了一个 SYSTEM 文件夹里面的代码,此…

基于java+springboot+mybatis+vue+mysql的智慧养老平台

项目介绍 随着社会的发展我国的人口老龄化严重,为了让这些在年前是给社会做出过贡献的老人老有所依,老有所养,度过一个安详的晚年,很多地方都实现了智慧养老,为此我们通过springbootvueelementUI 开发了本次基于java的…

1.用Python写了一个进销存管理的软件~需求分析界面设计数据库设计技术路线选择~

一、需求分析 总体来说,就是一个在游泳馆使用的进销存管理软件,记录商品的入库、出库情况,以及统计销售的金额等~ 整个系统有三类用户,系统管理员、公司管理员和公司销售员,系统管理员负责录入公司信息以及分配用户&…

ActiveMQ、RabbitMQ、RocketMQ、Kafka区别

1、4种消息中间件比较 特性ActiveMQRabbitMQRocketMQKafka开发语⾔javaerlangjavascala单机吞吐量万级万级10万级10万级时效性ms级us级ms级ms级以内可⽤性⾼(主从架构)⾼(主从架构)⾮常⾼(分布式架构)⾮常⾼(分布式架构)功能特性 成熟的产品, 在很多公司得到应⽤&a…

FFmpeg - Windows下使用ShiftMediaProject方法编译FFmpeg

文章目录一、创建一个ShiftMediaProject文件夹二、下载ShiftMediaProject源码 (以下操作最好都要翻墙)三、下载其他头文件四、编译五、参考资料一、创建一个ShiftMediaProject文件夹 我创建在: C:\ShiftMediaProject 二、下载ShiftMediaPro…

【LeetCode题目详解】(一)27.原地移除元素、88.合并两个有序数组

目录 一、力扣第27题:原地移除元素 1.思路一: 2.思路二 3.思路三 二、力扣第88题:合并两个有序数组 1.思路一: 2.思路二: 3.思路三: 总结 一、力扣第27题:原地移除元素 题目链接&#xf…

基于YOLOv3的车辆号牌定位

01 OCR原理分析 本文中采用的车辆号牌识别部分的是采用CNNLSTMCTC组合而成,整个网络部分可以分为三个部分,首先是主干网络CNN用于提取字符的特征信息,其次采用深层双向LSTM网络在卷积特征的基础上提取文字或字符的序列特征,最终引…

基于java+springboot+mybatis+vue+mysql的校园台球厅人员与设备管理系统

项目介绍 校园台球厅人员与设备管理系统采用java技术,基于springboot框架,前端使用vue技术,mysql数据库进行开发,实现了以下功能: 本系统主要包括管理员和用户两个角色组成,主要包括以下功能:…

m基于LMMSE+turbo算法的信道估计均衡器误码率仿真,对比LS,DEF以及LMMSE三种均衡算法误码率

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 本文推导了符号间干扰(ISI)信道的矢量形状因子图表示。结果图具有树形结构,避免了现有图方法中的短周期问题。基于联合高斯近似,我们在LLR&#xf…

CUDA入门和网络加速学习(二)

0. 简介 最近作者希望系统性的去学习一下CUDA加速的相关知识,正好看到深蓝学院有这一门课程。所以这里作者以此课程来作为主线来进行记录分享,方便能给CUDA网络加速学习的萌新们去提供一定的帮助。 1. 基础矩阵乘法 下图是矩阵乘法的示意图&#xff0…