C++【OpenCV】图片亮度色度归一化

cpp 复制代码
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat image = imread("SrcMF.jpg");
     // 灰度、Gamma归一化亮度
	cv::Mat m_gray;
	cv::cvtColor(image, m_gray, cv::COLOR_BGR2GRAY);
	float Gamma = log(128.0 / 255.0) / log(cv::mean(m_gray)[0] / 255.0);
	cv::Mat lookUpTable = cv::Mat::zeros(cv::Size(1, 256), CV_8UC1);
	for (int i = 0; i < 256; i++)
		lookUpTable.at<uchar>(0, i) = pow(i / 255.0, Gamma) * 255.0;
	cv::LUT(image, lookUpTable, image);
	imwrite(path + "\\06.jpg", image);

     //转到LAB,统一色度
	Mat result;
	cv::Mat m_lab;
	cv::cvtColor(image, m_lab, cv::COLOR_BGR2Lab);
	std::vector<cv::Mat> split_lab;
	cv::split(m_lab, split_lab);
	cv::convertScaleAbs(split_lab[1], split_lab[1], 128.0 / cv::mean(split_lab[1])[0], 0.0);
	cv::convertScaleAbs(split_lab[2], split_lab[2], 128.0 / cv::mean(split_lab[2])[0], 0.0);
	cv::merge(split_lab, result);
	cv::cvtColor(result, result, cv::COLOR_Lab2BGR);
	imwrite("08.jpg", result);

	return 0;
}
相关推荐
kk哥88991 天前
从数据分析到深度学习!Anaconda3 2025 全流程开发平台,安装步骤
人工智能
陈天伟教授1 天前
基于学习的人工智能(3)机器学习基本框架
人工智能·学习·机器学习·知识图谱
搞科研的小刘选手1 天前
【厦门大学主办】第六届计算机科学与管理科技国际学术会议(ICCSMT 2025)
人工智能·科技·计算机网络·计算机·云计算·学术会议
fanstuck1 天前
深入解析 PyPTO Operator:以 DeepSeek‑V3.2‑Exp 模型为例的实战指南
人工智能·语言模型·aigc·gpu算力
萤丰信息1 天前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
世洋Blog1 天前
更好的利用ChatGPT进行项目的开发
人工智能·unity·chatgpt
是小胡嘛1 天前
C++之Any类的模拟实现
linux·开发语言·c++
Want5951 天前
C/C++跳动的爱心①
c语言·开发语言·c++
lingggggaaaa1 天前
免杀对抗——C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持
c语言·c++·学习·安全·网络安全·免杀对抗