IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> OpenCV-Python教程:颜色图(applyColorMap)[只需几行代码生成22种风格各异的彩色图] -> 正文阅读

[人工智能]OpenCV-Python教程:颜色图(applyColorMap)[只需几行代码生成22种风格各异的彩色图]

返回OpenCV-Python教程

原文链接:http://www.juzicode.com/opencv-note-color-map-applycolormap

在OpenCV中通常使用cvtColor()进行色彩空间的转换,它可以实现彩色图像在各种色彩空间里的转换,也可以用于彩色图像和灰度图像之间相互转换,但是在彩色图像转换到灰度图像后,再用该灰度图转换回彩色图像只是名义上多通道的彩色图像,人眼看到的却不是“彩色”了。下面这个例子展示了这个彩转灰、灰转彩的过程:

#vx:桔子code / juzicode.com
import cv2
img_src = cv2.imread("nezha.jpg")
img_gray = cv2.cvtColor(img_src,cv2.COLOR_BGR2GRAY)    #彩色转灰度
print(img_gray.shape)    #单通道
img_color = cv2.cvtColor(img_gray,cv2.COLOR_GRAY2BGR)  #灰度转彩色
print(img_color.shape)   #3通道
cv2.imshow('img_color',img_color)
cv2.imshow('img_src',img_src)
cv2.waitKey()
cv2.destroyAllWindows()    

上图中右边是用cvtColor转换为灰度图后再转回的彩色图,在这个彩色图里面我们一点“彩色”的影子都看不到了。

有没有方法可以让转换成后的彩色图看起来更“彩色”呢??这里介绍一个功能更强大的接口函数:applyColorMap(),它可以将灰度图像转换成彩色图像,转换的模式达22种之多,它的接口形式是这样的:

cv2.applyColorMap(src, colormap[, dst]) ->dst

其中src为输入图像,可以是单通道或3通道的8bit图像。

colormap为颜色图模式,可以传入整数0~21对应各种不同的颜色图,或者用cv2.COLORMAP_AUTUMN(等价于0)、cv2.COLORMAP_BONE(等价于1)等方式传入,OpenCV源码头文件中定义的22种模式如下:

//! GNU Octave/MATLAB equivalent colormaps
enum ColormapTypes
{
    COLORMAP_AUTUMN = 0, //!< ![autumn](pics/colormaps/colorscale_autumn.jpg)
    COLORMAP_BONE = 1, //!< ![bone](pics/colormaps/colorscale_bone.jpg)
    COLORMAP_JET = 2, //!< ![jet](pics/colormaps/colorscale_jet.jpg)
    COLORMAP_WINTER = 3, //!< ![winter](pics/colormaps/colorscale_winter.jpg)
    COLORMAP_RAINBOW = 4, //!< ![rainbow](pics/colormaps/colorscale_rainbow.jpg)
    COLORMAP_OCEAN = 5, //!< ![ocean](pics/colormaps/colorscale_ocean.jpg)
    COLORMAP_SUMMER = 6, //!< ![summer](pics/colormaps/colorscale_summer.jpg)
    COLORMAP_SPRING = 7, //!< ![spring](pics/colormaps/colorscale_spring.jpg)
    COLORMAP_COOL = 8, //!< ![cool](pics/colormaps/colorscale_cool.jpg)
    COLORMAP_HSV = 9, //!< ![HSV](pics/colormaps/colorscale_hsv.jpg)
    COLORMAP_PINK = 10, //!< ![pink](pics/colormaps/colorscale_pink.jpg)
    COLORMAP_HOT = 11, //!< ![hot](pics/colormaps/colorscale_hot.jpg)
    COLORMAP_PARULA = 12, //!< ![parula](pics/colormaps/colorscale_parula.jpg)
    COLORMAP_MAGMA = 13, //!< ![magma](pics/colormaps/colorscale_magma.jpg)
    COLORMAP_INFERNO = 14, //!< ![inferno](pics/colormaps/colorscale_inferno.jpg)
    COLORMAP_PLASMA = 15, //!< ![plasma](pics/colormaps/colorscale_plasma.jpg)
    COLORMAP_VIRIDIS = 16, //!< ![viridis](pics/colormaps/colorscale_viridis.jpg)
    COLORMAP_CIVIDIS = 17, //!< ![cividis](pics/colormaps/colorscale_cividis.jpg)
    COLORMAP_TWILIGHT = 18, //!< ![twilight](pics/colormaps/colorscale_twilight.jpg)
    COLORMAP_TWILIGHT_SHIFTED = 19, //!< ![twilight shifted](pics/colormaps/colorscale_twilight_shifted.jpg)
    COLORMAP_TURBO = 20, //!< ![turbo](pics/colormaps/colorscale_turbo.jpg)
    COLORMAP_DEEPGREEN = 21  //!< ![deepgreen](pics/colormaps/colorscale_deepgreen.jpg)
};

各种ColormapTypes对应的色彩是下图这样的,有各种春夏秋冬四季风格、冷热风格等等:

下面这个例子将本地文件按照灰度图方式读入,然后将该灰度图用22种模式依次转换后显示、存储:

#vx:桔子code / juzicode.com
import cv2 
img_gray = cv2.imread("nezha.jpg",cv2.IMREAD_GRAYSCALE)
for i in range(22):
    dst = cv2.applyColorMap(img_gray,i) 
    cv2.imshow('map',dst) 
    cv2.waitKey(500)
    cv2.imwrite("map-"+str(i)+".jpg",dst)

转换后的效果是这样的:

?

这个例子里面我们用来转换的源图像是一个灰度图,实际上我们也可以用彩色图像作为源图像,经过桔子菌的测试,用彩色图和灰度图转换出来的效果是一样的。

扩展阅读:

  1. OpenCV-Python教程:色彩空间变换
  2. OpenCV-Python教程
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:23:44  更:2021-10-28 12:24:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:30:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码