1. 程式人生 > >OpenCV靜心修煉總結篇6——影象亮度與對比度調節

OpenCV靜心修煉總結篇6——影象亮度與對比度調節

影象的亮度與對比度調節原理

   

參考程式碼:

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);

   }

   else if(src.channels()==1)

   {

   

   }

   }

   imshow("output",dst);

   waitKey(0);

}