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;
}
相关推荐
半个落月4 分钟前
Prompt Engineering 完全指南:从入门到写出高质量提示词
人工智能
小p7 分钟前
claude code 工程化学习3: 如何创建一个复杂的 Skill
人工智能
程序大视界7 分钟前
【Python系列课程】Python入门教程
开发语言·人工智能·python
ZhengEnCi8 分钟前
09b-斯坦福CS336作业一-Transformer语言模型
人工智能
独隅13 分钟前
MySQL 接入不同 AI 大模型进行数据管理的全面指南(MySQL + AI)
数据库·人工智能·mysql
ZhengEnCi28 分钟前
09abb-SwiGLU激活函数
人工智能
.千余29 分钟前
【C++】C++类与对象3:const成员函数与取地址运算符重载,权限管理的艺术
开发语言·c++
用户5218724556533 分钟前
spring ai alibaba之项目搭建
人工智能
TickDB36 分钟前
智谱GLM-4 接金融数据:工具描述多写三个字,模型少犯一类错
人工智能·python·websocket·行情数据 api·行情 api
她的男孩40 分钟前
从自然语言到数据大屏:Forge Report Studio 的 AI 生成链路
人工智能·后端·架构