伽马变换(一些基本的灰度变换函数)基本原理及Python实现

1. 基本原理

变换形式

$$s=cr^{\gamma}$$

  • c与$\gamma$均为常数

可通过调整$\gamma$来调整该变换,最常用于伽马校正对比度增强

2. 测试结果

图源自skimage

3. 代码

 1 def gamma_transformation(input_image, c, gamma):
 2     ‘‘‘
 3     伽马变换
 4     :param input_image: 原图像
 5     :param c: 伽马变换超参数
 6     :param gamma: 伽马值
 7     :return: 伽马变换后的图像
 8     ‘‘‘
 9     input_image_cp = np.copy(input_image)  # 输入图像的副本
10
11     output_imgae = c * np.power(input_image_cp.astype(int), gamma) # 输出图像
12
13     return output_imgae

原文地址:https://www.cnblogs.com/iwuqing/p/11297247.html

时间: 2024-10-08 03:37:15

伽马变换(一些基本的灰度变换函数)基本原理及Python实现的相关文章

C++数字图像处理(1)-伽马变换

https://blog.csdn.net/huqiang_823/article/details/80767019 1.算法原理    伽马变换(幂律变换)是常用的灰度变换,是一种简单的图像增强算法.数学公式如下:(1)    式(1)中,r为输入的灰度值,取值范围为[0, 1].C称为灰度缩放系数,用于整体拉伸图像灰度,通常取值为1.gamma取值灰度输入输出曲线图如下:图(1) gamma曲线图    从图(1)可知:当gamma>1.0时,伽马变换将拉低图像灰度值,图像视觉上变暗:当ga

【图形学】我理解的伽马校正(Gamma Correction)

写在前面 我相信几乎所有做图像处理方面的人都听过伽马校正(Gamma Correction)这一个名词,但真正明白它是什么.为什么要有它.以及怎么用它的人其实不多.我也不例外. 最初我查过一些资料,但很多文章的说法都不一样,有些很晦涩难懂.直到我最近在看<Real Time Rendering,3rd Edition>这本书的时候,才开始慢慢对它有所理解. 本人才疏学浅,写的这篇文章很可能成为网上另一篇误导你的"伽马传说",但我尽可能把目前了解的资料和可能存在的疏漏写在这里

Gauss 双伽马定理的证明

Gauss 双伽马定理 \begin{equation}\label{1} \psi\left(\frac{p}{q}\right)=-\gamma-\frac{\pi}{2}\cot{\frac{\pi p}{q}}-\ln{q}+\sum_{n=1}^{q-1} \cos\frac{2\pi n p}{q}\ln\left(2\sin\frac{\pi n}{q}\right). \end{equation} 证明   由 $\Gamma$ 函数的 Weierstrass 乘积公式 \beg

伽马主打咖啡介绍

伽马咖啡,作为沈阳市最著名的咖啡店之一.其店内的环境和咖啡的味道受到广大人民群众的一致好评.每一杯令人精神振奋的咖啡,都带来了热带阳光般的温暖和花草般的芳香.当你端起一杯香浓可口的咖啡,闻到其香气的时候,都会觉得心旷神怡般的舒爽.每喝一口,令人回味无穷.伽马咖啡有着明确的目标,就是让人们能从咖啡中体会到更多快乐的体验.能在这快乐的咖啡体验中感受到生活的美好.伽马咖啡中有许多人们喜欢的咖啡种类.它们不仅味道香醇可口,而且能满足大部分人对咖啡的需求. 卡布基诺:卡布基诺是一种用同量的意大利特浓咖啡和

对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现

1. 基本原理 对比度拉伸是扩展图像灰度级动态范围的处理.通过在灰度级中确定两个点来控制变换函数的形状.下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值. 2. 测试结果 图源自skimage 3. 代码 1 def contrast_stretch(input_image): 2 ''' 3 对比度拉伸(此实现为阈值处理,阈值为均值) 4 :param input_image: 输入图像 5 :return: 对比图拉伸后的图像 6 ''' 7 input_image_cp = np.c

对数变换(一些基本的灰度变换函数)基本原理及Python实现

1. 基本原理 变换形式如下 $$T(r) = c\lg(r+1)$$ c为常数 由于对数函数的导数随自变量的增大而减小,对数变换将输入窄范围的低灰度值扩展为范围宽的灰度值和宽范围的高灰度值压缩为映射为范围窄灰度值.从视觉上,通常是图片变得更亮了 2. 测试结果 对数变换,参数C=1(图源自skimage) 3. 代码 1 def logarithmic_transformation(input_image, c): 2 ''' 3 对数变换 4 :param input_image: 原图像

各种变换滤波和噪声的类型和用途总结

摘自http://imgtec.eetrend.com/blog/4564 一.基本的灰度变换函数 1.1图像反转 适用场景:增强嵌入在一幅图像的暗区域中的白色或灰色细节,特别是当黑色的面积在尺寸上占主导地位的时候. 1.2对数变换(反对数变换与其相反) 过程:将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值. 用处:用来扩展图像中暗像素的值,同时压缩更高灰度级的值. 特征:压缩像素值变化较大的图像的动态范围. 举例:处理傅里叶频谱,频谱中的低值往往观察不到,对数变换之后细节更加丰富. 1

空间域图像增强

增强的目的是处理图像,使其比原始图像更适合于特定应用.图像增强方法分为空间域方法(直接对图像的像素处理)和频域(傅里叶变换为基础).以这两种结合来增强图像的非常少!最好的图像处理方法是得到最好的机器可识别的结果. 空间域图像增强公式g(x,y)=T(f(x,t)).g处理后的图像,f是原始图像,T是对f的一种操作. 图像增强的三个基本类型函数:线性(正比例,反比例),对数的(对数和反对数变换),幂次的(n次幂好n次方根变换). 以下,r为原始灰度,s为变换后的灰度.线性的图像反转:s=L-1-r

图像的点运算

对于一个数字图像处理系统来说, 一般可以将处理流程分为3个阶段.在获取原始图像 后, 首先是图像预处理阶段, 其次是特征抽取阶段,最后才是识别分析阶段.预处理阶段尤 为重要, 这个阶段处理不好则直接导致后面的工作无法展开. 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算.设r和s分别是输入 图像f(x,y)和输出图像g(x,y)在任一点(x,y)的灰度值,则点运算可以使用下式定义 s=T(r) 其中, T为采用的点运算算子, 表示在原始图像和输出图像之间的某种灰度级映射 关系. 点运算