真彩色是指影像中的物体颜色和人类肉眼所见的颜色非常相似。在黑白影像中全彩则是指物体的明亮程度。但因为颜色染料等媒体的化学等性质和人类肉眼不同,因此不可能得到绝对的真彩色。

伪彩色的概念就是相较于真彩色提出来的。对于灰度图像,我们可以依据不同像素点的灰度值不同,对R、G、B三个通道进行不同规律的赋值,并将三个通道融合组成一幅伪彩色图像。

1.C++自己实现灰度图像转伪彩色图像

下面介绍一种常见的基于灰度值阶数不同而实现的伪彩色映射。其将256阶灰度阶数分为四段,分别对应R、G、B三通道下的不同映射函数。

C++实现如下(需要配置OpenCV):

void test(Mat &inputimg, Mat &outputimg)
{vector<Mat> mv(3);Mat out;Mat Rimage = inputimg.clone();Mat Gimage = inputimg.clone();Mat Bimage = inputimg.clone();int rowNum = inputimg.rows;int colNum = inputimg.cols;//遍历实现每个像素点的RGB三通道赋值for (int i = 0; i < rowNum; i++){uchar *data1 = inputimg.ptr<uchar>(i);uchar *dataR = Rimage.ptr<uchar>(i);uchar *dataG = Gimage.ptr<uchar>(i);uchar *dataB = Bimage.ptr<uchar>(i);for (int j = 0; j < colNum; j++){if (data1[j] <= 255 / 4){dataR[j] = 0;dataG[j] = 4*data1[j];dataB[j] = 255;}else if (data1[j] <= 255 / 2){dataR[j] = 0;dataG[j] = 255;dataB[j] = -4 * data1[j] + 2 * 255;}else if (data1[j] <= 255 / 3){dataR[j] = 4 * data1[j] - 2 * 255;dataG[j] = 255;dataB[j] = 0;}else{dataR[j] = 255;dataG[j] = 4 * (255 - data1[j]);dataB[j] = 0;}}   }mv[0] = Bimage;mv[1] = Gimage;mv[2] = Rimage;//将三通道融合成彩色图想merge(mv, out);outputimg = out.clone();}

2.调用OpenCV的applyColorMap函数

同时在OpenCV中也提供了现成的applyColorMap函数可以直接产生伪彩色图像,同时提供多种颜色映射表可以选择。


void cv::applyColorMap  (InputArray src,OutputArray dst,int colormap )
/*
参数
src 灰度或彩色的源图像,类型为CV_8UC1或CV_8UC3。
dst 结果是伪彩色映射后的图像。
colormap 要应用的颜色映射类型
*/

下面是colormap的映射表:

Enumerator
COLORMAP_AUTUMN 

autumn

COLORMAP_BONE

bone

COLORMAP_JET 

jet

COLORMAP_WINTER

winter

COLORMAP_RAINBOW 

rainbow

COLORMAP_OCEAN

ocean

COLORMAP_SUMMER 

summer

COLORMAP_SPRING

spring

COLORMAP_COOL 

cool

COLORMAP_HSV

HSV

COLORMAP_PINK 

pink

COLORMAP_HOT

hot

COLORMAP_PARULA 

parula

COLORMAP_MAGMA

magma

COLORMAP_INFERNO 

inferno

COLORMAP_PLASMA

plasma

COLORMAP_VIRIDIS 

viridis

COLORMAP_CIVIDIS

cividis

COLORMAP_TWILIGHT 

twilight

COLORMAP_TWILIGHT_SHIFTED

twilight shifted

COLORMAP_TURBO 

turbo

COLORMAP_DEEPGREEN

deepgreen

C++ 灰度图像伪彩色处理相关推荐

  1. PlantCV中文文档

    PlantCV中文文档 1. 简介 1. 欢迎来到PlantCV文档 总览 开始 教程 贡献 版本 2. PlantCV Namespace 2.1 PlantCV 2.1.1 分析颜色 2.1.2 ...

  2. 【GDAL+C#聚类分析】基于FCM的图像非监督分类

    0 引言 拿到一幅遥感图像的时候,我们会主动关注什么要素?比如下面这张图,我们一眼就能看出,这块区域分布着公路.植被.楼房.河流等等地物. 我们为什么能够不假思索地分辨出这些不同的地物?其实这和我们后 ...

  3. Opencv 给灰度图上颜色

    在本教程中,我们将首先给出一个简单的方法,使用OpenCV的预定义的颜色映射来将灰度图像伪彩色化.另外,我们还将展示一个方法,如果你想使用你自己定义一个自定义的调色板.我会分享C++和Python代码 ...

  4. python灰度图像为什么显示成彩色的_python opencv image 怎么变成伪彩色

    匿名用户 1级 2017-05-16 回答 OpenCV 生成 伪彩色图像 opencv中没有易用的伪彩色图像生成函数,这里提供一个改造过的函数,利用自定义colorbar 将灰度图像转换成为伪彩色图 ...

  5. Matlab实现伪彩色处理:灰度图像转换为彩色图像

    灰度图像可以简单理解为一个灰度值矩阵,其中灰度值的取值范围是[0, 255],且灰度值为整数. 现在需要将这个灰度值矩阵中的每一个值拆分成3个通道(RGB),分别是红色通道(red, R).绿色通道( ...

  6. OpenCV伪彩色applyColorMap函数

    假如我们想在图片上显示不同区域的温度,我们可以把红外图像上的温度数据叠加为灰度图像,暗的区域代表冷的温度,更明亮的区域代表较热的温度,但是这样的呈现不能给人类视觉带来直觉的感受,不能更好地感知颜色的变 ...

  7. Win8Metro(C#)数字图像处理--2.7图像伪彩色

    Win8Metro(C#)数字图像处理--2.7图像伪彩色 原文:Win8Metro(C#)数字图像处理--2.7图像伪彩色  2.7图像伪彩色函数 [函数名称] 图像伪彩色函数PseudoCol ...

  8. Matlab 伪彩色处理方法总结(密度分割法、灰度级变换法、频域变换法)

    伪彩色处理方法总结 伪彩色处理是将黑白图像转换为彩色图像,方法分为空域变换及频域变换.空域变换其基本原理是构建颜色映射函数,将灰度值转换为彩色值.因为人眼对彩色图像的分辨能力大于黑白图像,所以伪彩色处 ...

  9. 数字图像的类型——伪彩色,真彩色,假彩色

    参考: http://blog.sina.com.cn/s/blog_764b1e9d0100t9c8.html 伪彩色图像 同灰度图像一样,也是单波段的图像,但是这个单波段图像是有颜色的,不再是灰度 ...

  10. 将灰度图像转换成彩色图像

    伪彩色处理,将灰度图像转换成彩色图像. clc;clear zd=imread('1.jpg'); zd=double(rgb2gray(zd)); figure; subplot(1,2,1) im ...

最新文章

  1. java rpm_Java JDK rpm安装与配置
  2. addcolumn---Grid---Magento
  3. 【python数据挖掘课程】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取
  4. 西宁a货翡翠,孝感a货翡翠
  5. Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法
  6. linux SIGHUP
  7. php dirname(_FILE_)
  8. Screen Space Reflection 2
  9. 何谓dB、dBm、dBi
  10. 国仁猫哥:视频号超详细运营攻略教程;教你如何打造一个优质的视频号【建议收藏】
  11. C 语言 switch 语句
  12. android开发隐藏图片,用美图看看安卓版教你如何隐藏私人图片(图文)
  13. Stream流和Optional
  14. Typora简单传图(Typora+PicGo-Core+SMMS/阿里云OSS 实现图床)
  15. Hisat2-Stringtie-DESeq2复现Transcript-level expression analysis of RNA-seq experiments with ...
  16. 火车订票管理系统/火车购票网站系统/火车订票网站/火车票售卖系统
  17. 迅雷赚钱宝和优酷路由宝赚钱的原理
  18. MYSQL创建课程表course_MySQL简单案例之创建学生表、课程表和选课表
  19. CISCO DHCP配置全程详解
  20. Centos 基本命令

热门文章

  1. 音频算法工程师面试内容
  2. win10 退出误登的微软账号,无需改注册机,无需重置系统
  3. PLC编程实例(一) 基本电路
  4. MathType输入花体字
  5. 二十五个软件测试经典面试题
  6. 个推华为推送、小米推送、苹果推送及角标
  7. C# 海康人脸识别设备初开发(一)
  8. WordPress获取当前网站域名
  9. linux 基础课程讲义,Linux基础讲义.ppt
  10. html图片左右滑动代码dw,DW图片无缝滚动代码