【图像处理】07调整图像亮度与对比度

对比度比较简单,大概的意思就是,把A图像的像素值经过变换后变成B的图像的像素值,这种变换有一个公式,公式就是上面的,公式有两个运算,一个乘法,一个加法。乘法就是扩大像素值,这个就是对比度。加法就是让像素值趋向于250白色。也就是亮度。 

​
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
     Mat src1,dst;
     src1 = imread("C:/daima practice/opencv/mat1/mat1/image6.jpg");
     if (!src1.data)
     {
           printf("could not load image3...\n");
           return -1;
     }
//新的创建窗口的方法
     char input_win[] = "input image";          
     namedWindow(input_win,CV_WINDOW_AUTOSIZE);
     imshow(input_win,src1);                    
     //对比度与亮度的改变
     int height = src1.rows;
     int width = src1.cols;
     dst = Mat::zeros(src1.size(),src1.type());
     float alpha = 1.5;//调整对比度
     float beta = 50;//调整亮度
     
     //cvtColor(src1,src1,CV_BGR2GRAY); //转变为灰度图
  ///////读取每一行,每一列的像素   
     for(int row = 0;row < height; row++)
     {
           for(int col = 0;col < width;col++)
           {
                if(src1.channels() == 3)//3通道运算
                {
                      float b = src1.at<Vec3b>(row,col)[0];//blue蓝色
                      float g = src1.at<Vec3b>(row,col)[1];//green绿色
                      float r= src1.at<Vec3b>(row,col)[2];//red红色
                      //开始操作像素
                      dst.at<Vec3b>(row,col)[0] = saturate_cast<uchar>(b*alpha + beta);
                      dst.at<Vec3b>(row,col)[1] = saturate_cast<uchar>(g*alpha + beta);
                      dst.at<Vec3b>(row,col)[2] = saturate_cast<uchar>(r*alpha + beta);
                }
                else if(src1.channels() == 1)//单通道运算
                {
                      
                      float v = src1.at<uchar>(row,col);
                      dst.at<uchar>(row,col) = saturate_cast<uchar>(v*alpha+beta);
                }
           }
     }

     char output_title[] = "contrast and brightness change demo";
     namedWindow(output_title,CV_WINDOW_AUTOSIZE);
     imshow(output_title,dst);
     waitKey(0);
     return 0;
}

​

猜你喜欢

转载自blog.csdn.net/fanjiule/article/details/81222988