在 c 中调整图像的亮度和对比度
// main.cpp : Defines the entry point for the console application.
//
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, const char** argv)
{
    Mat img = imread("lena30.jpg", CV_LOAD_IMAGE_COLOR); //open and read the image
    if (img.empty())
    {
        cout << "Image cannot be loaded..!!" << endl;
        return -1;
    }
    Mat img_higher_contrast;
    img.convertTo(img_higher_contrast, -1, 2, 0); //increase the contrast (double)
    Mat img_lower_contrast;
    img.convertTo(img_lower_contrast, -1, 0.5, 0); //decrease the contrast (halve)
    Mat img_higher_brightness;
    img.convertTo(img_higher_brightness, -1, 1, 20); //increase the brightness by 20 for each pixel 
    Mat img_lower_brightness;
    img.convertTo(img_lower_brightness, -1, 1, -20); //decrease the brightness by 20 for each pixel 
    //create windows
    namedWindow("Original Image", CV_WINDOW_AUTOSIZE);
    namedWindow("High Contrast", CV_WINDOW_AUTOSIZE);
    namedWindow("Low Contrast", CV_WINDOW_AUTOSIZE);
    namedWindow("High Brightness", CV_WINDOW_AUTOSIZE);
    namedWindow("Low Brightness", CV_WINDOW_AUTOSIZE);
    //show the image
    imshow("Original Image", img);
    imshow("High Contrast", img_higher_contrast);
    imshow("Low Contrast", img_lower_contrast);
    imshow("High Brightness", img_higher_brightness);
    imshow("Low Brightness", img_lower_brightness);
    waitKey(0); //wait for key press
    destroyAllWindows(); //destroy all open windows
    return 0;
}
计划的输出: