Opencv-LUT的作用与用法

LUT的作用与用法

    • 知识点
    • python代码
    • c++代码

知识点

Look Up Table(LUT)查找表

  • applyColorMap(src, dst, COLORMAP)
  • src 表示输入图像
  • dst表示输出图像
  • 匹配到的颜色LUT, OpenCV支持13种颜色风格的查找表映射
    Opencv-LUT的作用与用法_第1张图片

python代码

import cv2 as cv

src = cv.imread("C:/Users/qqxd/Desktop/opencvcode/images/test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
dst = cv.applyColorMap(src, cv.COLORMAP_COOL)
cv.imshow("output", dst)

# 伪色彩
image = cv.imread("C:/Users/qqxd/Desktop/opencvcode/images/canjian.jpg")
color_image = cv.applyColorMap(image, cv.COLORMAP_JET)
cv.imshow("image", image)
cv.imshow("color_image", color_image)
cv.waitKey(0)
cv.destroyAllWindows()

c++代码

#include 
#include 

using namespace cv;
using namespace std;
void customColorMap(Mat &image);
int main(int argc, const char *argv[])
{
	Mat src = imread("C:/Users/qqxd/Desktop/opencvcode/images/test.png");
	if (src.empty())
	{
		printf("could not load image...\n");
		return -1;
	}
	Mat gray, dst;
	// 使用LUT
	applyColorMap(src, dst, COLORMAP_SUMMER);
	// 显示结果
	imshow("colorMap", dst);

	cvtColor(src, gray, COLOR_BGR2GRAY);
	imshow("gray", gray);
	customColorMap(gray);

	waitKey(0);
	return 0;
}

//可以自定义Lut查找表,这里是将图像二值化的作用
void customColorMap(Mat &image) {
	int lut[256];
	for (int i = 0; i < 256; i++) {
		if (i < 127)
			lut[i] = 0;
		else
			lut[i] = 255;
	}

	int h = image.rows;
	int w = image.cols;
	for (int row = 0; row < h; row++) {
		for (int col = 0; col < w; col++) {
			int pv = image.at<uchar>(row, col);
			image.at<uchar>(row, col) = lut[pv];
		}
	}
	imshow("lut demo", image);
}

运行结果如下:
Opencv-LUT的作用与用法_第2张图片

你可能感兴趣的:(Opencv)