opencv学习日志29--gamma校正
·
前言
这篇文章中主要讲述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.缺少素材图片,后续补上谢谢。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)