美文网首页
44. 图像的灰度变换(伽马变换)

44. 图像的灰度变换(伽马变换)

作者: 大龙10 | 来源:发表于2025-06-27 07:22 被阅读0次

灰度变换与直方图索引

一、线性灰度变换

  • 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。

二、伽马变换

  • 幂律变换也称伽马变换,可以提升暗部细节,对发白(曝光过度)或过暗(曝光不足)的图片进行矫正。

  • 幂律变换可以由以下公式描述:
    Dt = c * (D+\epsilon)^{\gamma}

  • 伽马变换本质上是对图像矩阵中的每个值进行幂运算。0< \gamma <1 时,拉伸图像中灰度级较低的区域,压缩灰度级较高的部分,增加图像的对比度;γ > 1 时,拉伸图像中灰度级较高的区域,压缩灰度级较低的部分,降低图像的对比度。

  • 伽马变换通过非线性变换对人类视觉特性进行补偿,最大化地利用有效的灰度级带宽。很多拍摄、显示、打印设备的亮度曲线都符合幂律曲线,因此伽马变换广泛应用于各种设备显示效果的调校,称为伽马校正。

三、例程

  • 1.56 图像的幂律变换
import cv2
import numpy as np
from matplotlib import pyplot as plt

# 1.56 图像的非线性灰度变换: 幂律变换 (伽马变换)
img = cv2.imread(r"e:/opencv/bgra.png", flags=0)  # flags=0 读取为灰度图像

gammaList = [0.125, 0.25, 0.5, 1.0, 2.0, 4.0]  # gamma 值
normImg = lambda x: 255. * (x-x.min()) / (x.max()-x.min()+1e-6)  # 归一化为 [0,255]

plt.figure(figsize=(9,6))
for k in range(len(gammaList)):
imgGamma = np.power(img, gammaList[k])
imgGamma = np.uint8(normImg(imgGamma))

plt.subplot(2, 3, k+1), plt.axis('off')
plt.imshow(imgGamma,  cmap='gray', vmin=0, vmax=255)
plt.title(f"$\gamma={gammaList[k]}$")
plt.show()

四、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/121508973

相关文章

  • 图像增强整理

    功能与算法对应表 参考文档 灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割 《数字图像处理》(...

  • exp1-空间域图像增强

    图像灰度变换 计算显示图像直方图、直方图均衡化 空间域图像平滑、锐化

  • 图像灰度变换

    1.灰度变换指对图像的单个像素进行操作,主要以对比度和阈值处理为目的。其变换形式如下。 其中,T 是灰度变换函数;...

  • 灰度变换

    灰度变换是针对与空间域中的图像,直接对每一个像素点进行操作,灰度变换一般是用一个函数来将原图像转化成另一个图像,以...

  • 【图像处理】灰度变换

    简介 空间域处理主要分为灰度变换和空间滤波两类: 灰度变换在图像的单个像素上操作,主要以对比度和阈值处理为目的,我...

  • 三、图像直方图变换和几何变换

    直方图变换 灰度变换 点运算 几何变换 直方图变换 1.灰度直方图 灰度直方图:数字图像中每一灰度级像素出现的频次...

  • 2、灰度变换函数

    1、imadjust 和 stretchlim imadjust 用于对灰度级图像进行灰度变换。 除了 f 和 ...

  • 直方图

    画出图像直方图 直方图归一化 这种归一化直方图的操作被称作灰度变换(Grayscale Transformatio...

  • 图像处理算法的理论与实践

    图像处理算法的理论与实践 1. 图像的点运算 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算,通常用于改...

  • 图像的点运算3

    伽马变换 伽马变换又名指数变换或幂次变换,是另一种常用的灰度非线性变换。 一般表达式如下, 其中,x与y的取值范围...

网友评论

      本文标题:44. 图像的灰度变换(伽马变换)

      本文链接:https://www.haomeiwen.com/subject/hogugjtx.html