图像的亮度与对比度调节原理
参考代码:
int image_change_bright()
{
Mat src,dst;
src = imread("E:\\1.png");
if(src.empty())
{
printf("打开图像失败\n");
return -1;
}
imshow("input image",src);
int height =src.rows;
int wide =src.cols;
dst = Mat::zeros(src.size(),src.type());
int alpha = 1.5;
int bate =50;
for(int row=0;row<height;row++)
for(int col=0;col<wide;col++)
{
if(src.channels()==3)
{
int b= src.at<Vec3b>(row,col)[0];
int g= src.at<Vec3b>(row,col)[1];
int r= src.at<Vec3b>(row,col)[2];
dst.at<Vec3b>(row,col)[0]=saturate_cast<uchar>(b*alpha+bate);
dst.at<Vec3b>(row,col)[1]=saturate_cast<uchar>(g*alpha+bate);
dst.at<Vec3b>(row,col)[2]=saturate_cast<uchar>(r*alpha+bate);
}
}
imshow("output",dst);
waitKey(0);
}