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;
}
相关推荐
IT_陈寒10 分钟前
Vite热更新失效?你可能漏了这个配置
前端·人工智能·后端
禹亮科技21 分钟前
制造业100㎡跨国技术评审会议室音视频整体解决方案(亿联+思必驰+讯飞AI落地实践)
人工智能·音视频·视频会议系统集成
2601_9557598822 分钟前
Claude API Key 交接与离职回收操作指南
人工智能
峥无26 分钟前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
老云讲算力市场27 分钟前
智算中心加速迈向超节点时代,奇点算力布局高效算力服务
人工智能·科技
潍坊老登32 分钟前
甲方正在记着办理经营性ICP许可证,我三天二开了一个在线教育系统
人工智能
阿米亚波36 分钟前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
benben04440 分钟前
大模型之基于TRL的ORPO对齐训练实战篇
人工智能
中微极客1 小时前
多智能体编排实战:CrewAI vs AutoGen(2026版)
大数据·网络·人工智能
葡萄城技术团队1 小时前
活字格 AI Coding——重新定义大屏开发范式(三)
人工智能