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;
}
相关推荐
小ᶻᶻᶻᶻᶻ12 分钟前
AI创作新手册:精通Prompt提示词的提问策略
人工智能·prompt
高效匠人13 分钟前
prompt实用技巧-AI+Mermaid【酷炫钉钉文档】
人工智能·prompt·钉钉·ai编程·行业学习
xuehaishijue33 分钟前
安全装备检测系统源码分享
人工智能·安全·目标跟踪
兵哥工控1 小时前
MFC工控项目实例之十五定时刷新PC6325A模拟量输入
c++·mfc
h177113472051 小时前
相亲交友中的用户画像构建方法探讨
人工智能·安全·小程序·系统架构·交友·回归算法
dingzd951 小时前
Web3的崛起与智能合约的角色
人工智能·web3·去中心化·创新
湫兮之风1 小时前
C++:opencv生成结构元素用于膨胀腐蚀等cv::getStructuringElement
开发语言·c++·opencv
赋创小助手1 小时前
无人机应用新纪元:图形工作站配置推荐与硬件解析
人工智能·科技·深度学习·机器学习·无人机
ws2019072 小时前
抓机遇,创发展︱2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会,零部件国产浪潮不可阻挡
大数据·人工智能
ws2019072 小时前
助力汽车半导体产业发展,2025 广州国际新能源汽车功率半导体技术展览会与您相约“羊城”广州
大数据·人工智能·汽车