opencv之伪彩变换

我们在处理红外图像时,由于红外图像都是16位的数据,灰度范围较大,对比度不明显,经常通过直方图均衡的方式将图像增强进行8位的显示。

红外图像在一定程度上反映了环境中物体的温度变化——我们可以认为较暗的图像区域表示的是温度较低的区域(蓝色来表示),更加明亮的区域认为是温度较高的区域(红色来表示),进而将灰度图转变为彩色数据便于人类的视觉系统进行可视化。

用伪彩色更好地显示数据的其他例子是高度、压力、密度、湿度等等。

applyColorMap伪彩色函数

OpenCV定义了12种colormap(色度图),可以应用于8位的灰度图像,使用函数applyColorMap产生伪彩色图像。

applyColorMap定义

void applyColorMap(InputArray src, OutputArray dst, int colormap);
// InputArray src:   输入原始图像(只支持8位灰度图像)
// OutputArray dst:  输出结果伪彩色图像
// int colormap:     色度图的种类

applyColorMap用法

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

下图显示了一个关于colormap(色度图)的视觉表示和COLORMAP_*的数值,左边的颜色模式表示较低的灰度值,右边的则表示较高的灰度值。

LUT颜色查找表

**1、定义一个映射:**色度图是从0-255值256种颜色映射。在OpenCV,我们需要创建一个大小为256×1的8位彩色图像来存储256个颜色值。

**2、对照颜色使用查找表:**在OpenCV,你可以申请一个信息存储在一个256×1的彩色图像使用查找表LUT图像。

LUT定义

void LUT(InputArray src, InputArray lut, OutputArray dst);
// src表示的是输入图像(可以是单通道也可是3通道)
// lut表示查找表(查找表也可以是单通道,也可以是3通道,如果输入图像为单通道,那查找表必须为单通道,若输入图像为3通道,查找表可以为单通道,也可以为3通道,若为单通道则表示对图像3个,通道都应用这个表,若为3通道则分别应用 )
// dst表示输出图像

LUT用法

#include<highgui\highgui.hpp>
using namespace cv;
int main()
{uchar lutData[256 * 3];int j = 0;for (int i = 0; i<256; i++){if (i <= 100){lutData[i * 3] = 0;lutData[i * 3 + 1] = 50;lutData[i * 3 + 2] = 50;}if (i > 100 && i <= 200){lutData[i * 3] = 100;lutData[i * 3 + 1] = 10;lutData[i * 3 + 2] = 200;}if (i > 200){lutData[i * 3] = 255;lutData[i * 3 + 1] = 200;lutData[i * 3 + 2] = 100;}}Mat lut(1, 256, CV_8UC3, lutData);Mat a = imread("test.jpg", CV_LOAD_IMAGE_ANYCOLOR);Mat b;namedWindow("anjis", CV_WINDOW_AUTOSIZE);namedWindow("anjis1", CV_WINDOW_AUTOSIZE);imshow("anjis", a);LUT(a, lut, b);imshow("anjis1", b);waitKey();
}

附录

0 COLORMAP_AUTUMN

1 COLORMAP_BONE

2 COLORMAP_JET

3 COLORMAP_WINTER

4 COLORMAP_RAINBOW

5 COLORMAP_OCEAN

6 COLORMAP_SUMMER

7 COLORMAP_SPRING

8 COLORMAP_COOL

9 COLORMAP_HSV

10 COLORMAP_PINK

11 COLORMAP_HOT

opencv之伪彩变换相关推荐

  1. OpenCV离散傅立叶变换DFT的实例(附完整代码)

    OpenCV离散傅立叶变换DFT的实例 OpenCV离散傅立叶变换DFT的实例 OpenCV离散傅立叶变换DFT的实例 #include "opencv2/core.hpp" #i ...

  2. OpenCV使用F变换过滤

    OpenCV使用F变换过滤 使用F变换过滤 目标 模糊变换应用 代码 解释 使用F变换过滤 目标 本教程向您演示如何使用F变换进行图像过滤.你会看见: 背后的基本理论 不同设置的插图. 模糊变换应用 ...

  3. OpenCV使用F变换进行修补

    OpenCV使用F变换进行修补 使用F变换进行修补 目标 介绍 模糊变换应用 代码 解释 使用F变换进行修补 目标 在本教程中,您将学习使用F变换修复图像的工作原理.它包括: 背后的基本理论 三种不同 ...

  4. OpenCV离散傅立叶变换

    OpenCV离散傅立叶变换 离散傅立叶变换 目标 源代码 解释 将图像放大到最佳尺寸 兼顾复杂和真实的值 进行离散傅立叶变换 将真实和复杂的值转换为幅度 裁剪并重新排列 归一化 结果 离散傅立叶变换 ...

  5. Python+OpenCV:形态学变换

    Python+OpenCV:形态学变换 理论 形态学变换是基于图像形状的一些简单操作. 它通常在二值图像上执行.它需要两个输入,一个是我们的原始图像,另一个是结构元素(structuring elem ...

  6. OpenCV Laplacian 拉普拉斯变换

    ::返回OpenCV算子速查表 OpenCV Laplacian 拉普拉斯变换 1. 函数 2. 例程 原图 Sobel和Scharr的处理结果 Laplacian 1. 函数 OpenCV官方文档链 ...

  7. 基于Python利用OpenCV实现Hough变换的形状检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天我们将学习如何借助霍夫变换技术来检测图像中的直线和圆. 什么是 ...

  8. opencv 其他形态学变换

    如何使用OpenCV函数 morphologyEx 进行形态学操作: 开运算 (Opening) 闭运算 (Closing) 形态梯度 (Morphological Gradient) 顶帽 (Top ...

  9. Opencv——几何空间变换(仿射变换和投影变换)

    几何空间变换 [1]几何变换(空间变换)简述 [2]变换矩阵知识简述 齐次坐标的概念 几何运算矩阵 [3]图像的仿射变换 1.平移变换 2.比例缩放 3.旋转 4.对称变换(不做展示) 1.关于X轴变 ...

最新文章

  1. 现代密码学3.1--定义计算安全的两种方法
  2. 目的港无人提货的法律风险及风险承担
  3. Javascript 补位运算符
  4. 超详细的MySQL工作原理 体系结构
  5. 《JSP实用教程(第2版)/耿祥义》错误之非必要导入包
  6. 中国石油大学《测井解释与生产测井》第二阶段在线作业
  7. 从杂技表演到日剧GBM(r12笔记第23天)
  8. 【日语】动词的九种变形
  9. 【Git】error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was rece
  10. Android源码设计模式探索与实战【建造者模式】
  11. php 圆角的度数计算,【圆角度的计算公式是什么】-圆的角度公式-数学-沃捍瞻同学...
  12. win10 oracle怎样卸载,怎么完全卸载Oracle?(Win10) 以Oracle 11g为例
  13. QmlTableView
  14. php k线图 echarts,股票K线图,折线图总结(echarts)
  15. VS2013未能正确加载microsoft.visualstudio.editor.implementation.editorpackage
  16. csdn博客 代码块的显示设置以及图片的插入技巧
  17. 计算机教案解说词,导游词讲解教案
  18. Windows10系统下JDK1.8的下载安装及环境变量配置
  19. 用DOSBox0.74进行汇编代码的运行
  20. 小米4 第三方re奇兔_小米10隐藏技巧,解除限制,MIUI11内置动态壁纸恢复设为来电秀...

热门文章

  1. linux系统中鼠标键盘失灵,电脑键盘失灵的原因以及解决技巧
  2. 协会分享 | 如何推动EOS区块链技术在高校的落地
  3. 代码审计| HDWiki 漏洞(一)
  4. Hadoop——你不得不了解的大数据工具
  5. 轨物范世:华为手机的影像哲学
  6. java 写字板源代码_基于JAVA的模拟写字板的设计与实现(含录像)
  7. mysql创建数据库后出现Access denied for user 'root'@'%' to database ‘xxxx’
  8. ESP32 开发笔记(三)源码示例 8_DHT11_RMT 使用RMT实现读取DHT11温湿度传感器
  9. 分析称诺基亚仅押宝WP成自救牵绊
  10. Unity通过脚本实现不规则多边形的碰撞检测