日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/19 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python opencv cv.applyColorMap()函数(颜色映射)ColormapTypes【将Intel Realsense D435深度图的黑白图映射为彩色图】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 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深度图的黑白图映射为彩色图】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。