Python | D435i相机渲染深度图时所用到的cv2.convertScaleAbs() & cv2.applyColorMap() 函数

介绍

在使用D435i相机读取和显示深度图的时候,看到程序中有这么一句话:

    
    depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)

就很奇怪,depth_image 明明是2维数据,但经过该程序转换后,得到了一个3D数据。而且里面的数据大小也变了。

官方备注该程序为:渲染图像。但是这个“渲染”,本身已经是一个很大的领域了,在各种基于3D模型的目标跟踪论文中都能看到,但我目前还不知道该用法的意义是什么。

说回以上python语句,其中包含了两个函数:cv2.applyColorMapcv2.convertScaleAbs。搞明白这两个函数都是怎么运转的就能明白上述语句。

解释

1. cv2.convertScaleAbs

参考网址:python opencv 4.1.0 cv2.convertScaleAbs()函数 (通过线性变换将数据转换成8位[uint8])(用于Intel Realsense D435显示depth图像)

上述网址给出了函数cv2.convertScaleAbs 的计算过程,包括计算步骤和用到的公式。

为了省事,这里只做总结:

cv2.convertScaleAbs 将输入的深度图,按照颜色显示出来。比如说,设置6米处为最远有效距离,那么[0,6]米内的距离应该按照[0-255, 0-255,0-255] 的颜色范围显示出来。大于6米的距离和6米显示相同的颜色。

2. cv2.convertScaleAbs

参考网址:如何使用OpenCV的applyColorMap创建伪彩色

函数cv2.convertScaleAbs表示将图像以伪彩色的形式显示出来。

OpenCV定义了12个颜色图,可使用applyColorMap函数将其应用于灰度图像以生成伪彩色图像。

说的直白点,可能是为了好看。。。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值