openCV1-3 图像查找表与色彩表

LUT 图像查找表

LUT(Look - Up Table,图像查找表)在图像处理中是一种极为重要的工具。其本质是利用 map 算法对像素进行处理。具体来说,当像素值范围处于 0 - 255 时 ,LUT 会预先创建 256 个数组,对这些像素值进行预处理。

左侧是低对比度图像的像素值矩阵,右侧是高对比度图像的像素值矩阵。在 LUT 中,已经预先建立了从低对比度像素值到高对比度像素值的映射关系。当需要将低对比度图像转换为高对比度图像时,无需重新计算,只需将低对比度图像中像素值为 40 的元素,按照查找表的映射关系,整体改成 70(这里仅为示例示意,实际映射关系依具体 LUT 设定而定) ,即可快速实现图像对比度的调整。

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
   //打开图片
	Mat src = imread("D:\\souse\\opencv_tutorial_data-master\\images\\pedestrian.png", IMREAD_COLOR);
	if (src.empty())
	{
		cout << "Could not open or find the image!" << endl;
		return -1;
	}
	//显示原图
	namedWindow("Original Image", WINDOW_AUTOSIZE);
	imshow("Original Image", src);
	//读入查找表
	Mat color = imread("D:\\souse\\opencv_tutorial_data-master\\images\\lut.png", IMREAD_COLOR);
	Mat lut(256, 1, CV_8UC3);
	for(int i = 0; i < 256; i++)
	{
		lut.at<Vec3b>(i, 0) = color.at<Vec3b>(10, i);
	}
	imshow("Color", color);
	imshow("LUT", lut);
	Mat des;
	LUT(src, lut, des);
	imshow("Result Image", des);
	waitKey(0);
}

颜色表使用

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
   //打开图片
	Mat src = imread("D:\\souse\\opencv_tutorial_data-master\\images\\pedestrian.png", IMREAD_COLOR);
	if (src.empty())
	{
		cout << "Could not open or find the image!" << endl;
		return -1;
	}
	//显示原图
	namedWindow("Original Image", WINDOW_AUTOSIZE);
	imshow("Original Image", src);
	//读入查找表
	Mat des;
	//COLORMAP_JET:将图像转换为伪彩色图像
	applyColorMap(src, des, COLORMAP_JET);
	imshow("Result Image1", des);
	applyColorMap(src, des, COLORMAP_COOL);
	imshow("Result Image2", des);
	waitKey(0);
}
相关推荐
欧特克_Glodon17 小时前
OpenCV计算机视觉开发入门与实践<二十七>:图像分割概述
c++·人工智能·opencv·计算机视觉
yyk333241 天前
OpenCV中运动目标检测
opencv·目标检测·目标跟踪
AndrewHZ1 天前
图像处理入门021 | 直方图:图像像素分布的可视化 —— cv2.calcHist 与 4 类典型分布
图像处理·opencv·直方图·直方图均衡化·cdf·灰度直方图·多通道直方图
爱吃火鸡面呀1 天前
OpenCV 实战:文档扫描与神经风格迁移完整指南
人工智能·opencv·计算机视觉
陈年老古董2 天前
OpenCV实战:文档扫描与图像风格迁移
人工智能·python·opencv·计算机视觉
AI的探索之旅2 天前
97 个 OpenCV 实例(十四):图像分割,GrabCut 抠图 + inpaint 去水印
人工智能·opencv·计算机视觉
词却2 天前
OpenCV入门(五):图像拼接、背景建模、光流估计与DNN风格迁移
opencv
派大_星2 天前
OpenCV中的文档扫描与DNN图像处理
人工智能·opencv·计算机视觉
QT界面美化性能优化2 天前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
AndrewHZ2 天前
图像处理入门020 | 图像二值化:阈值分割基础 —— cv2.threshold 五种类型与自适应阈值铺垫
图像处理·opencv·文档扫描·阈值分割·图像二值化·trackbar·自适应阈值