opencv+python学习记录(九)伽马变换

2019-04-27  本文已影响0人  三味菜551

一、什么是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()

上一篇下一篇

猜你喜欢

热点阅读