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;
}
相关推荐
人工智能培训咨询叶梓5 分钟前
LLAMAFACTORY:一键优化大型语言模型微调的利器
人工智能·语言模型·自然语言处理·性能优化·调优·大模型微调·llama factory
果冻人工智能6 分钟前
数学不是你以为的那样 —— 但它决定你在AI时代的命运
人工智能
蓝衣剑客8 分钟前
山姆·奥特曼传(二):OpenAI的第一次内斗
人工智能·ai编程
遇健李的幸运9 分钟前
AI团队比单打独斗强!CrewAI多智能体协作系统开发踩坑全解析
人工智能
蓝衣剑客10 分钟前
山姆·奥特曼传(三):硬币的两面
人工智能·ai编程
TGITCIC11 分钟前
智能觉醒:四大AI Agent框架重构未来生产力
人工智能·ai·agent·rag·ai agent·智能体·agent框架
蓝衣剑客12 分钟前
山姆·奥特曼传(一):我是如何走到今天的
人工智能·ai编程
蓝衣剑客14 分钟前
山姆·奥特曼传(四):安妮的心结
人工智能·ai编程
阿_旭15 分钟前
目标检测中COCO评估指标中每个指标的具体含义说明:AP、AR
人工智能·目标检测·coco评估指标
热爱运维的小七21 分钟前
从数据透视到AI分析,用四层架构解决运维难题
运维·人工智能·架构