前言

这篇文章中主要讲述opencv图像处理中gamma校正的应用。

一、gamma校正

//第一题 gamma校正
#include <opencv2/opencv.hpp>
#include <iostream>
#include<cmath>
using namespace cv;
using namespace std;

int main()
{
	cv::Mat dst;
	cv::Mat dstbin;
	cv::Mat dsttemp;
	cv::Mat finalpicture;
	cv::Mat src = imread("C://Users//john//Desktop//1.jpg");
	cv::Mat srcgray = imread("C://Users//john//Desktop//1.jpg", 0);
	int i, j;
	//cout << sizeof(srcgray) << endl;  538  478
	int row = srcgray.rows;
	int col = srcgray.cols;
	cout << row << endl;
	cout << col << endl;
	int size = row*col;
//	double sum = 0;
//	cout << 1 / 0.5 << endl;

	float lut[256];// 定义表
	float r =0.4;
	for (i = 0; i <= 255; i++)
	{
	
		lut[i] =float( i )/float(255);

	}
	float secondlut[256];
	for (i = 0; i <= 255; i++)
	{

	
		secondlut[i] = pow(lut[i], r);
	}
	for (int j = 0; j < row; j++)  //读取灰度总值
	{
		for (int i = 0; i < col; i++)
		{
			uchar average = srcgray.at<uchar>(j, i);
			srcgray.at<uchar>(j, i) = secondlut[average]*255;
		}
	}
	//(x/sum)~r*255
	cout << sum << endl;

	cv::imshow("srcgray", srcgray);
	cv::imshow("final", src);
	waitKey(0);
}

总结

1.代码可以直接运行,如果有不懂得可以留言哦。
2.缺少素材图片,后续补上谢谢。

Logo

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

更多推荐