opencv影象亮度調整
阿新 • • 發佈:2018-11-10
先上程式碼:
#include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" using namespace cv; int contrast = 300; int main(int argc, char *argv[]) { QApplication a(argc, argv); Mat srcImg = imread("../imgs/a.jpeg"); namedWindow("Display Image", CV_WINDOW_AUTOSIZE ); imshow("Display Image", srcImg); Mat destImg = Mat::zeros(srcImg.size(), srcImg.type()); for(int i =0; i < srcImg.rows; i++) { for(int j = 0; j < srcImg.cols; j++) { for(int c = 0 ; c < 3; c++) { destImg.at<cv::Vec3b>(i,j)[c] = srcImg.at<cv::Vec3b>(i,j)[c]; destImg.at<cv::Vec3b>(i,j)[c] = \ saturate_cast<uchar>(srcImg.at<cv::Vec3b>(i,j)[c] * contrast * 0.001); } } } namedWindow("Display Image", CV_WINDOW_AUTOSIZE ); imshow("Display Image", destImg); return a.exec(); }
他的本質上就是在修改圖片上每個點的GBR值