pythonrgbd图片像素对齐_利用pyrealsense获取深度图,并进行像素对齐
系统:Ubuntu16.04
python版本:python2.7
内核版本:4.13.0
realsense SDK:librealsense1.12.1
python wrapper:pyrealsense2.2
这里的pyrealsense2.2指的是pyrealsense1的2.2版本,并不是pyrealsense2,如图:
安装pyrealsense/2.2
1. 进入github的pyrealsense地址,把pyrealsense的包下下来,解压到本地。sudo apt-get install pycparser
sudo apt-get install Cython
sudo apt-get install Numpy
3. 通过setup.py安装pyrealsensepython setup.py install
---获取深度图---import pyrealsense as rs
import cv2
import bumpy as np
serv = rs.Service()
dev = serv.Device()
depth = dev.depth
depth = depth * dev.depth_scale * 1000
depth = depth.astype(np.uint8)
rgb = dev.color
gray = cv2.cvtColor(rob,cv2.COLOR_BGR2GRAY)
gray_depth = np.concatenate((gray,depth),axis=1)
cv2.imshow('gray_depth',gray_depth)
mix = cv2.addWeighted(gray,0.5,depth,0.5,0)
cv2.imshow('mix',mix)
以上代码的作用是,获取灰度图+深度图,然后融合两张图获取混合后的mix图,效果如下:
---问题分析---
根据以上代码的运行结果,我们可以很直观的看到,获取的RGB图和深度图的坐标位置是不一样的。这是因为深度摄像头上不同摄像头存在空间位置的偏差导致的。首先什么是深度图?
深度图,它是灰度图像,该图像的每一个像素值都是摄像头到物体表面之间距离的估计值。
那么,这样两张不对齐的RGB图和深度图,就做不到每个像素点之间的一一对应关系,也就没办法直接拿来用了,所以需要我们做像素对齐,把每个像素点一一对应起来,这样的数据才是有效的。
---像素对齐---
关于像素对齐,官方其实给出了相关函数,只是pyrealsense1的examples中没有写出来,而pyrealsense2中的函数我们又没法用。所以当不确定到底有没有相关函数时,我们可以自己进行查找。
通过dir(***),可以列出***底下所有的函数,如图:
我们可以看到,dev底下有两个函数cad和daccad:color align to depth #RGB图对齐到深度图,得到对齐后的RGB图
dac:depth align to color #深度图对齐到RGB图,得到对齐后的深度图
经测试后,cad图会有鱼眼的效果,导致图像存在黑边,而且还有一定比例的缩放,不利于操作。
所以我这里选择了dac,让深度图主动对齐RGB图,而RGB的图像则由普通摄像头获取,代码如下:import pyrealsense as rs
import cv2
import numpy as np
serv = rs.Service()
dev = serv.Device()
dac = dev.dac
dac = dac * dev.depth_scale * 1000
depth = dac.astype(np.uint8)
rgb = dev.color
gray = cv2.cvtColor(rob,cv2.COLOR_BGR2GRAY)
gray_depth = np.concatenate((gray,depth),axis=1)
cv2.imshow('gray_depth',gray_depth)
mix = cv2.addWeighted(gray,0.5,depth,0.5,0)
cv2.imshow('mix',mix)
结果如下,通过mix图,可以很清晰地看到像素对齐以后的效果:
pythonrgbd图片像素对齐_利用pyrealsense获取深度图,并进行像素对齐相关推荐
- python过去日期_利用python获取当前日期前后N天或N月日期的方法示例
前言 最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 ...
- python获取window共享目录列表_利用Python获取DICOM RTstructure勾画列表
在<利用Python打开DICOM CT文件>一文中,我们利用pydicom.dcmread()读取了CT图像.本文中我们将修改load_scan()函数来读取RTstructure文件并 ...
- python自动保存ping结果_利用python获取Ping结果示例代码
前言 本文主要跟大家分享了关于利用python获取Ping结果的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 -*- i ...
- python读取sas数据集_利用Python获取SAS和R自带数据集
图:北京-奥森公园-2018年4月 无论是SAS.R还是Python,本身都自带一些数据集,对于初学者来说,可以通过这些自带的小数据集进行编程练习,无疑是非常方便的.SAS.R作为统计分析软件,本身自 ...
- js获取classname值_利用js获取元素class值的两种方法
我们有时为了达到某种效果,需要以元素的class值为条件做判断. 我们如何利用JavaScript获取元素class的值?我们先看下面代码: x=document.getElementsByTagNa ...
- igs无法分配驱动器映射表_利用VBA获取驱动器的信息
大家好,我们今日讲解"VBA信息获取与处理"教程中第十七个专题"文件及文件夹信息的获取及操作"的第三节"利用VBA获取文件的信息和属性",这 ...
- vba monthview控件64位_利用VBA获取文件的信息和属性
大家好,我们今日讲解"VBA信息获取与处理"教程中第十七个专题"文件及文件夹信息的获取及操作"的第三节"利用VBA获取文件的信息和属性",这 ...
- word里公式后面标号怎么对齐_如何使Word中公式与文字对齐
我们在写论文过程中,在Word文档里输入MathType写的公式,发现公式与文字不能很好得对齐问题,上下有偏差,很丑,让人很不爽:还有很多人发现使用MathType编辑的公式直接粘贴到Word里面,与 ...
- opencv获取图片像素坐标_利用OpenCV从图片中提取矩形并标注坐标(室内平面地图)(一)
某城市会展中心室内地图 背景 一名室内设计师的日常工作从设计一张会展地图开始.常常有这样的场景:划分除规范的展位后,进入销售阶段,频繁的需要修改这张地图,如展示拆分.合并.换位置.标记已交易. 问题 ...
最新文章
- pgsql数据库默认配置事务类型_PostgreSQL基础教程之:初始化配置
- CSS学习六:布局剖析
- Linux/Ubuntu
- 三只松鼠:阿里云数据中台基座上的多渠道、多业态生长
- [原创] GSM/GPRS 以及CDMA区分以及相关模块选型
- php ajax取不到值,PHP没有从Ajax获取值
- oldboy_09_03day
- 万物智联时代的终端智能「管家」 重磅升级:混合云IoT一体机
- python之父子进程间通信
- 惠斯通电桥信号调理芯片_变频器通电后无反应,如何检查维修?
- 树莓派安装python3.5_树莓派升级python的具体步骤
- TurboMosaic 如何制作照片马赛克效果
- Plugin “GsonFormat“ is incompatible
- FlashFXP 5.0.0官方中文破解版,附文件下载地址和破解码
- 大巧不工Web前端设计修炼之道——(8)浅谈Web发展的未来
- 游戏中常用的设计模式
- 打造可信区块链生态推动行业发展|筱静观察2019第9期
- 腾讯滑块vData_VMP分析
- m3u8 视频的解密,合并处理 通过java代码
- java集成showdoc文档生成
热门文章
- R语言使用coin包应用于独立性问题的置换检验(permutation tests、响应变量是否独立于组、两个数值变量是独立的吗、两个分类变量是独立的吗)、以及coin包的常用置换检验函数
- R语言ggplot2可视化自动换行适配长文本图例(legend)实战:Multiple Lines for Text per Legend Label
- R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析、用虚线标记进行数据填充的区域
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加均值、中位数)实战
- R语言ggplot2可视化在lines线图的尾端添加线图标签、并且去除图例实战
- R语言按组聚合求和实战(sum a variable by group):使用aggregate函数按组聚合求和、使用tapply函数按组聚合求和、按组聚合求和(使用dplyr包)
- R语言卡方分布函数Binomial Distribution(dchisq, pchisq, qchisq rchisq)实战
- R函数之:apply(), lapply(), sapply(), tapply()
- windows10 Selenium Chrome 驱动安装
- three.js 背景图片