文章目录

  • API
  • ColormapTypes
  • 完整应用代码【将深度图的黑白图映射为彩色图】
  • map原理
  • 能否map CV_24UC3的?

API

def applyColorMap(src, colormap, dst=None): # real signature unknown; restored from __doc__"""applyColorMap(src, colormap[, dst]) -> dst.   @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image. 在给定图像上应用GNU Octave / MATLAB等效色图。.   .   @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.源图像,灰度或彩色的CV_8UC1或CV_8UC3类型。(CV_8UC1指8位无符号单通道矩阵、CV_8UC3指8位无符号三通道矩阵).   @param dst The result is the colormapped source image. Note: Mat::create is called on dst.结果是颜色映射的源图像。 注意:Mat :: create在dst上调用。.   @param colormap The colormap to apply, see #ColormapTypes要应用的颜色图,请参见#ColormapTypesapplyColorMap(src, userColor[, dst]) -> dst.   @brief Applies a user colormap on a given image. 将用户颜色图应用于给定图像。.   .   @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.源图像,灰度或彩色的CV_8UC1或CV_8UC3类型。.   @param dst The result is the colormapped source image. Note: Mat::create is called on dst.结果是颜色映射的源图像。 注意:Mat :: create在dst上调用。.   @param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256要应用的CV_8UC1或CV_8UC3类型的颜色图,大小为256"""pass

colormap:查看并设置当前颜色图。

配色:通过将一个颜色方案,分配给一张图,使得一张黑白图彩色化。例如,画油画,首先是素描出物体的轮廓,接着是给画出的物体涂上适宜的颜色,这个记录不同物体对应的颜色的映射,就是配色方案。

在以下代码中,cv.applyColorMap()函数将一层的深度图(黑白)映射到三层,打印出来便是彩色图:

depth_image = cv.applyColorMap(cv.convertScaleAbs(depth_image, alpha=0.03), cv.COLORMAP_JET)

ColormapTypes

完整应用代码【将深度图的黑白图映射为彩色图】

# -*- encoding: utf-8 -*-
"""
@File    : test_191123_将深度图打印成黑白图.py
@Time    : 2019/11/24 15:57
@Author  : Dontla
@Email   : sxana@qq.com
@Software: PyCharm
"""
import pyrealsense2 as rs
import cv2 as cv
import numpy as nppipeline = rs.pipeline()cfg = rs.config()
cfg.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
cfg.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)profile = pipeline.start(cfg)try:while True:fs = pipeline.wait_for_frames()color_frame = fs.get_color_frame()depth_frame = fs.get_depth_frame()if not depth_frame or not color_frame:continuecolor_image = np.asanyarray(color_frame.get_data())depth_image = np.asanyarray(depth_frame.get_data())# 打印成黑白# depth_image = cv.convertScaleAbs(depth_image, alpha=0.03)# 打印成彩色depth_image = cv.applyColorMap(cv.convertScaleAbs(depth_image, alpha=0.03), cv.COLORMAP_JET)window = cv.namedWindow('window', cv.WINDOW_AUTOSIZE)cv.imshow('window', depth_image)cv.waitKey(1)
finally:pipeline.stop()

map原理

具体是怎么map的暂时不用管吧,毕竟还没有精力到去看源码的地步,但猜测,对应每一种ColormapType,都有公式使被map的矩阵数值与map后的颜色的数值一一对应,执行前先判断是CV_8UC1还是CV_8UC3,到时它直接计算就好了。

能否map CV_24UC3的?

貌似也能,代码:

# -*- encoding: utf-8 -*-
"""
@File    : test_191123_将深度图打印成黑白图.py
@Time    : 2019/11/24 15:57
@Author  : Dontla
@Email   : sxana@qq.com
@Software: PyCharm
"""
import pyrealsense2 as rs
import cv2 as cv
import numpy as nppipeline = rs.pipeline()cfg = rs.config()
cfg.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
cfg.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)profile = pipeline.start(cfg)try:while True:fs = pipeline.wait_for_frames()color_frame = fs.get_color_frame()depth_frame = fs.get_depth_frame()if not depth_frame or not color_frame:continuecolor_image = np.asanyarray(color_frame.get_data())depth_image = np.asanyarray(depth_frame.get_data())# 打印成黑白# depth_image = cv.convertScaleAbs(depth_image, alpha=0.03)# 打印成彩色# depth_image = cv.applyColorMap(cv.convertScaleAbs(depth_image, alpha=0.03), cv.COLORMAP_JET)# 测试是否能map CV_24UC3的color_image = cv.applyColorMap(color_image, cv.COLORMAP_JET)window = cv.namedWindow('window', cv.WINDOW_AUTOSIZE)cv.imshow('window', color_image)cv.waitKey(1)
finally:pipeline.stop()

运行后正常的color图变成这样了。。。

只不过,不知道那是不是我所理解的CV_24UC3,因为网上查不到CV_24UC3,还是CV_24UC3根本就是CV_8UC3,不知道我的理解是否是错误的。

参考文章1:Matlab函数解释:colormap

参考文章2:cv::ColormapTypes

参考文章3:Intel Realsense D435 将深度图的灰度图映射为彩色图,打印输出灰度图或彩色图

python opencv cv.applyColorMap()函数(颜色映射)ColormapTypes【将Intel Realsense D435深度图的黑白图映射为彩色图】相关推荐

  1. 使用OpenCV可视化Intel Realsensen D435 深度图为彩色图

    使用OpenCV可视化Intel Realsensen D435 深度图为彩色图 使用OpenCV将深度图转化为彩色图像,主要使用下面两个函数: cv2.convertScaleAbs(depth_i ...

  2. 2021-01-07 python opencv实现车牌识别 颜色定位

    python opencv实现车牌识别 颜色定位 主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https ...

  3. python Intel Realsense D435 多线程资源分配问题(卡住、卡死)

    在使用python多线程调用Intel Realsense D435多个摄像头时,发现pyrealsense的例如pipeline.start().context.query_devices()函数会 ...

  4. python如何拟合三维平面(拟合Intel Realsense D435深度数据点)

    文章目录 拟合Intel Realsense D435深度数据点 参考文章:[MQ笔记]超简单的最小二乘法拟合平面(Python) import numpy as np import matplotl ...

  5. Intel Realsense D435 是否启动pipeline.start()就开始传输帧,还是只有我们调用wait_for_frames()函数时它才会传输帧?(任务管理器USB带宽内存测试)

    我猜想Intel Realsense D435摄像头只要启动pipeline.start()函数,就会开始传输帧,无论我们是否调用wait_for_frames()或者poll_for_frames( ...

  6. Intel Realsense D435 python (Python Wrapper)examples 官方案例汇总

    From pypi/pyrealsense 1.Intel Realsense D435 python (Python Wrapper)example -1: quick start (快速开始) F ...

  7. Intel Realsense D435运行报错 RuntimeError: Camera not connected! dev.hardware_reset()函数需加睡眠sleep()

    解决方案: 参考:Intel Realsense D435报错 RuntimeError: MFCreateDeviceSource(_device_attrs, &_source) retu ...

  8. Intel Realsense d435 使用python对深度图进行预处理

    Intel Realsense d435 使用python对深度图进行预处理 本文中主要翻译一下一篇关于深度图预处理过滤器的内容,后面还会有关于距离测量的. 原文中的图像显示,是使用matplotli ...

  9. Intel Realsense D435 python multiprocessing 摄像头多进程流传输

    参考文章1:python 测试multiprocessing多进程 参考文章2:Intel Realsense D435 多摄像头目标识别架构

最新文章

  1. C语言数组测试函数,(完整word版)C语言数组与函数阶段测试题答案---(20200807070313)(8页)-原创力文档...
  2. html 第三次作业
  3. JSON数据解析及gson.jar包
  4. MATLAB有关数字信号处理的一些方法
  5. aptitude安装出现依赖_oeasy 教您玩转linux 之 010210 应用管理 aptitude
  6. sleuth微服务整合Zipkin
  7. SAP Spartacus PagelayoutComponent里的section和slot
  8. Linux Socket函数手册(二)
  9. ORA-02290:违反检查约束条件(sys_c0011321)什么原因
  10. Spring中注入List,Set,Map,Properties的xml文件配置方法
  11. 卫星地图-resolution和scale解析
  12. 为什么在项目中要慎用RxBus
  13. QT Designer 设计主窗口时如何更改工具栏默认顺序
  14. 淘宝API 拍立淘图片搜索接口
  15. Google引擎搜索技巧
  16. 备战双十一,你清楚积分兑换系统运营吗
  17. linux mv命令的功能,linux常用命令:Linux常用命令之mv命令是什么?
  18. eclipse工具的使用
  19. 拜读台湾清华大学彭明辉教授研究生手册笔记
  20. Day18JavaSE——Map集合Collections工具类集合案例练习

热门文章

  1. 【整理】ABAP 7.40新特性介绍(上)
  2. 【温故知新】CSS学习笔记(样式表)
  3. 一些基本的ABAP技巧
  4. 提高项目执行力的六板斧
  5. 哈士奇与阿拉斯加的区别!
  6. Invoice校验差异处理
  7. CO模块之利润中心会计
  8. 冰墩墩+周杰伦也救不了NFT
  9. B站爱情怀,投资者只看利益
  10. 围城之势已起,拼多多骑虎难下