zoukankan      html  css  js  c++  java
  • 9.gamma 变换提高对比度

    一、gamma 校正原理

           

        二、算法实现

          1. 归一化 :将像素值转换为  0 ~ 1  之间的实数。

          2.. 反归一化 :将经过预补偿的实数值反变换为  0  ~  255  之间的整数值。具体算法为 : f*256

          

     1 Mat gamma_correction(Mat& img, double gamma_c, double gamma_g)
     2 {
     3     int width = img.cols;
     4     int height = img.rows;
     5     int channel = img.channels();
     6 
     7     Mat out = Mat::zeros(height, width, CV_8UC3);
     8     double val;
     9     for (int y = 0; y < height; y++)
    10     {
    11         for (int x = 0; x < width; x++)
    12         {
    13             for (int c = 0; c < channel; c++)
    14             {
    15                 //归一化
    16                 val = (double)img.at<Vec3b>(y, x)[c] / 255;
    17                 out.at<Vec3b>(y, x)[c] = (uchar)(1 / gamma_c * pow(val, 1 / gamma_g) * 255);
    18             }
    19         }
    20     }
    21     return out;
    22 }

    三、除了gamma校正,还有对数,指数线性变换等方式提高图像对比度。

  • 相关阅读:
    字符串练习
    Python基础
    熟悉常见的Linux命令
    大数据概述
    实验三 递归下降分析法
    简化C语言文法
    实验一 词法分析程序实验
    词法分析程序
    制作首页的显示列表
    完成登录功能
  • 原文地址:https://www.cnblogs.com/xingyuanzier/p/13308493.html
Copyright © 2011-2022 走看看