在OpenCV中使用applyColorMap创建伪彩色

在本教程中,我们将首先展示一种使用OpenCV的预定义颜色图对灰度图像进行伪彩色 / 假彩色 的简单方法。

 

这篇文章专门介绍了NASA的“ New Frontiers program”计划,该计划帮助探索了木星,金星和现在的冥王星!

 

通常,对行星和空间中其他物体的灰度图像进行伪彩色显示,以显示细节,并用不同的颜色标记与不同材料相对应的区域。我们将使用的灰阶照片的一个冥王星  所采取的新的天际在本教程中的例子。

 

什么是色彩图?

假设我们要在地图上显示美国不同地区的温度。我们可以将温度数据作为灰度图像叠加在美国地图的顶部,较暗的区域表示温度较低,较亮的区域表示温度较高的区域。这样的表示不仅令人难以置信的无聊,而且由于两个大原因,它是一种不好的表示。首先,人类视觉系统并未优化以测量灰度强度的微小变化。我们在感知颜色变化方面做得更好。其次,我们将不同的含义与不同的颜色相关联。用蓝色表示较凉的温度,用红色表示较暖的温度更有意义。

 

温度数据只是一个示例,但是在其他几种情况下,数据是单值(灰度)的,但是将其转换为颜色数据以进行可视化是有意义的。通过伪彩色更好地可视化的数据的其他示例是高度,压力,密度,湿度等。

 

在OpenCV中使用applyColorMap

OpenCV定义了12个颜色图,可使用applyColorMap函数将其应用于灰度图像以生成伪彩色图像。让我们快速了解如何将色彩映射表COLORMAP_JET应用于图像。

 

C++

 

using namespace cv; 
 
Mat im_gray = imread("pluto.jpg", IMREAD_GRAYSCALE);
Mat im_color;
applyColorMap(im_gray, im_color, COLORMAP_JET);

Python


import cv2 
 
im_gray = cv2.imread("pluto.jpg", cv2.IMREAD_GRAYSCALE)
im_color = cv2.applyColorMap(im_gray, cv2.COLORMAP_JET)

下图显示了颜色图的可视化表示形式和COLORMAP_ *的数值。较低的灰度值由刻度左侧的颜色替换,而较高的灰度值位于刻度右侧的颜色。

自定义色彩图

自定义颜色图 有些人对餐馆的菜单永远不满意。尽管厨师在选择食材方面具有专业知识,但他们将通过添加,替换和替代食材来定制菜肴。哦,是的,那些人。

如果您恰好是这些人之一,并且想要创建自己的颜色图(上帝的帮助下12色图有什么问题?),请执行以下步骤。

 

  1. 定义颜色图:颜色图是从0-255值到256色的映射。在OpenCV中,我们需要创建一个大小为256 x 1的8位彩色图像,以存储256个彩色值。

  2. 使用查找表映射颜色:   在OpenCV中,可以使用查找表LUT将存储在256 x 1彩色图像中的颜色图应用于图像。

C++


Mat im_color;
// NOTE : im_gray is 3-channel image with identical 
// red, green, blue channels.  
LUT(im_gray, lut, im_color);

Python


# NOTE : im_gray is 3-channel image with identical
# red, green, blue channels.  
im_color = cv2.LUT(im_gray, lut)

相关源码下载地址:关注“图像算法”微信公众号,回复伪彩色

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值