#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2\imgproc\types_c.h>
#include <opencv2/opencv.hpp>

using namespace std;

float lightMean(cv::Mat img)//计算图片的各个通道的亮度后求均值
{
	cv::Scalar scalar = cv::mean(img);
	float imgChannel1 = scalar.val[0];
	float imgChannel2 = scalar.val[1];
	float imgChannel3 = scalar.val[2];
	//float imgChannel4 = scalar.val[3];
	//qDebug() << "--4.method mean picture Light : " << QString::number(picMeanLight, 10, 4);
	float imgLight = (imgChannel1 + imgChannel2 + imgChannel3) / 3;
	return imgLight;
}

float lightGray(cv::Mat img)//转化为灰度图片,计算像素平均值作为亮度
{
	cv::Mat imgGray;
	cv::cvtColor(img, imgGray, CV_BGR2GRAY);
	cv::Scalar grayScalar = cv::mean(imgGray);
	float imgGrayLight = grayScalar.val[0];
	return imgGrayLight;
}

int main()
{
	cv::Mat imgTest;
	// 读取一张图片  
                imgTest = cv::imread("C:/Users/xxx/Desktop/xxx20220718-100821.jpg");
	//
	float picLight1 = lightMean(imgTest);
	cout << "亮度值1为:" << picLight1 << endl;

	float picLight2 = lightGray(imgTest);
	cout << "亮度值2为:" << picLight2 << endl;
    
    // 等待任意按钮结束
    cv::waitKey(0);
	return 0;
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐