一、什么是Gamma变换
Gamma变换是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系:
这个指数即为Gamma。
Gamma变换就是用来图像增强,其提升了暗部细节,简单来说就是通过非线性变换,让图像从暴光强度的线性响应变得更接近人眼感受的响应,即将漂白(相机曝光)或过暗(曝光不足)的图片,进行矫正。
二、Gamma变换的基本形式
大于1时,对图像的灰度分布直方图具有拉伸作用(使灰度向高灰度值延展),如果图像整体或者感兴趣区域较暗,则Gamma>1,可以降低图像对比度;而小于1时,对图像的灰度分布直方图具有收缩作用(是使灰度向低灰度值方向靠拢),如果图像整体或者感兴趣区域较亮,则Gamma<1,可以增加图像对比度。
#-*-coding:utf-8-*-
import cv2 as cv
import numpy as np
if __name__== "__main__":
print("---------------Hello python ------------")
filename= ("huise.jpg")
src= cv.imread(filename)
fsrc= src/255.0 # 归一化到[0,1]
gamma= 0.5
O= np.power(fsrc, gamma)
clahe= cv.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) #自适应直方图均衡化
gray_image= cv.cvtColor(src, cv.COLOR_BGR2GRAY)
dst= clahe.apply(gray_image)# 转为gray
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
cv.imshow("O", O)
cv.imshow("clahe", dst)
cv.waitKey(0)
cv.destroyAllWindows()
网友评论