EmguCV-对比度亮度调整

g(x) = af(x)+b
1、参数 f(x)表示原图像像素
2、参数 g(x)表示输出图像像素
3、参数 a(a>0),被称之为增益(Gain),通常用来控制图像对比度
4、参数 b通常称之为偏置(bias),通常用来控制图像的亮度
g(i,j) = af(i,j)+b

Image<Bgr, Byte> img = new Image<Bgr, byte>(@"C:\Users\Administrator\Desktop\22.jpg");
  Image<Bgr, Byte> img2 = img.Clone();//创建img副本

  int contrast = 100;//对比度
  Byte brightness = 16;//亮度

  for (int i = 0; i < img.Rows; i++)
  {
      for (int j = 0; j < img.Cols; j++)
      {
          int color_B = (int)((0.01 * contrast) * img.Data[i, j, 0] + brightness);
          int color_G = (int)((0.01 * contrast) * img.Data[i, j, 1] + brightness);
          int color_R = (int)((0.01 * contrast) * img.Data[i, j, 2] + brightness);
          if (color_B>255)
          {
              color_B = 255;
          }
          if (color_G > 255)
          {
              color_G = 255;
          }
          if (color_R > 255)
          {
              color_R = 255;
          }

          if (color_B < 0)
          {
              color_B = 0;
          }
          if (color_G < 0)
          {
              color_G = 0;
          }
          if (color_R < 0)
          {
              color_R = 0;
          }
          img.Data[i, j, 0] = (Byte)color_B;
          img.Data[i, j, 1] = (Byte)color_G;
          img.Data[i, j, 2] = (Byte)color_R;
      }
  }
  CvInvoke.Imshow("img show", img);
  CvInvoke.WaitKey(0);

 

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注