opencv之对比度和亮度的调节

Posted chriscoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv之对比度和亮度的调节相关的知识,希望对你有一定的参考价值。

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之对比度和亮度的调节的主要内容,如果未能解决你的问题,请参考以下文章

opencv中如何调整图像亮度和对比度,以及亮度和对比度调整的原理

opencv实现图片的算术,逻辑运算和图片融合功能(亮度和对比度)

Android OpenCV之算数操作与调整图像的亮度和对比度

Android OpenCV之算数操作与调整图像的亮度和对比度

opencv入门之四Trackbar图像对比度亮度值调整

OpenCv学习4——像素运算