伽马变换

原理概述

假设输入图像为I,宽为W、高为H,首先将其灰度值归一化到[0,1]范围,对于8位图来说,除以255即可。I (r, c)代表归一化后的第 r 行第 c 列的灰度值, 输出图像记为O,伽马变换就是令
(O(r,c)=I(r,c)^{gamma},0 ≤ r < H, 0 ≤ c < W,)
当 γ= 1 时,图像不变。如果图像整体或者感兴趣区域较暗,则令 0 < γ < 1 可以 增加图像对比度;反之亦然。

代码

图像的伽马变换实质上是对图像矩阵中的每一个值进行幂运算,Numpy提供的幂函数power实现了该功能。

# !/usr/bin/env python
# -*-encoding: utf-8-*-
# author:LiYanwei
# version:0.1


import cv2
import numpy as np


if __name__ =="__main__":
    I = cv2.imread('img.jpg', cv2.IMREAD_GRAYSCALE)
    # 图像归一化
    fI = I/255.0
    # 伽马变换
    gamma = 0.5
    O = np.power(fI, gamma)
    # 显示原图和变换后的图
    cv2.imshow("I", I)
    cv2.imshow("O", O)
    cv2.waitKey()
    cv2.destroyAllWindows()
原文地址:https://www.cnblogs.com/Py00/p/8945456.html