1. 程式人生 > >opencv之對比度和亮度的調節

opencv之對比度和亮度的調節

right 控制 取值 display open 輸出 play char 之間

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之對比度和亮度的調節