码迷,mamicode.com
首页 > 其他好文 > 详细

opencv之对比度和亮度的调节

时间:2019-01-12 21:46:43      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:对比   对比度   出图   line   span   for   pre   之间   防止   

opencv之对比度和亮度的调节

  • 公式

\[ g(x) = a*f(x) + b\]

注:\(f(x)\) 为输入图像, \(g(x)\) 为输出图像。

注:\(a\)为增益,用于控制图像的对比度; \(b\)为偏置,用于控制图像的亮度。

  • 代码
for (int y = 0; y < image.rows; ++y)
  {
    for (int x = 0; x < image.cols; ++x)
    {
      for (int c = 0; c < image.channel; ++c)
      {
        new_image.at<cv::Vec3b>(y, x)[c] = cv::saturate_cast<uchar>(contrast_value * (image.at<cv::Vec3b>(y, x)[c]) + bright_value);
      }
    }
  }

注: cv::saturate_cast<uchar>()是为了防止结果超出范围,用于溢出保护。

注:为了对比效果一般, constrast_value取值范围为: 0.0 -3.0之间。

opencv之对比度和亮度的调节

标签:对比   对比度   出图   line   span   for   pre   之间   防止   

原文地址:https://www.cnblogs.com/ChrisCoder/p/10260956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!