《数字图像处理-OpenCV/Python》连载(50)非线性灰度变换
本书京东优惠购书链接:https://item.jd.com/14098452.html
本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html
第 7 章 图像的灰度变换
灰度变换按照灰度级的映射函数修改像素的灰度值,从而改变图像灰度的动态范围。灰度变换可以使图像的动态范围扩大、图像对比度增强,使图像更清晰、特征更明显。
本章内容概要
7.3 非线性灰度变换
非线性灰度变换是指运用非线性函数调整原始图像的灰度范围。常用方法有对数变换和幂律变换。对数变换与幂律变换的映射关系如图7-4所示。
非线性灰度变换在运算过程中,像素值要按实数来计算,计算结果也是实数,要注意图像数据类型的转换。
7.3.1 对数变换
对数变换是指将输入范围较窄的低灰度级映射为范围较宽的灰度级,使较暗区域的对比度增强,提升图像的暗部细节。
=
∗
l
(
1
+
)
式中,src和dst分别表示原始图像和变换图像的灰度值;c是比例系数。
对数变换实现了扩展低灰度级而压缩高灰度级的效果,广泛应用于频谱图像的显示,典型应用是傅里叶频谱的显示。
7.3.2 幂律变换
幂律变换也称伽马变换,可以提升暗部细节,对发白(曝光过度)或过暗(曝光不足)的图片进行校正。
=
c
∗
c
γ
,
γ
0
dst = c*src^{gamma}, gamma>0
γ
gamma
当
0
<
γ
<
1
0<gamma<1
0<γ<1时,拉伸了图像的低灰度级,压缩了图像的高灰度级,减弱了图像的对比度;当
γ
gamma
γ>1时,拉伸了图像的高灰度级,压缩了图像的低灰度级,增强了图像的对比度。
伽马变换通过非线性变换对人类视觉特性进行补偿,可以最大化地利用灰度级的带宽,很多拍摄、显示和打印设备的亮度曲线都符合伽马曲线,因此伽马变换被广泛应用于显示设备的调校,称为伽马校正。
【例程0704】灰度变换之对数变换
# 【0704】灰度变换之对数变换
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
if __name__ == '__main__':
gray = cv.imread("../images/Fig0602.png", flags=0) # 读取为灰度图像
fft = np.fft.fft2(gray) # 傅里叶变换
fft_shift = np.fft.fftshift(fft) # 将低频部分移动到图像中心
amp = np.abs(fft_shift) # 傅里叶变换的频谱
ampNorm = np.uint8(cv.normalize(amp, None, 0, 255, cv.NORM_MINMAX)) # 归一化为 [0,255]
ampLog = np.abs(np.log(1.0 + np.abs(fft_shift))) # 对数变换, c=1
ampLogNorm = np.uint8(cv.normalize(ampLog, None, 0, 255, cv.NORM_MINMAX))
plt.figure(figsize=(9, 3.2))
plt.subplot(131), plt.title("1. Original"), plt.axis('off')
plt.imshow(gray, cmap='gray', vmin=0, vmax=255)
plt.subplot(132), plt.title("2. FFT spectrum"), plt.axis('off')
plt.imshow(ampNorm, cmap='gray', vmin=0, vmax=255)
plt.subplot(133), plt.title("3. LogTrans of FFT"), plt.axis('off')
plt.imshow(ampLogNorm, cmap='gray', vmin=0, vmax=255)
plt.tight_layout()
plt.show()
程序说明:
(1)运行结果,傅里叶频谱的对数变换如图7-5所示。图7-5(2)所示为图7-5(1)的傅里叶频谱图,图7-5(3)所示为图7-5(2)的对数变换图像。
(2)由于傅里叶频谱的动态范围很宽,图7-5(2)只能显示图像中心的一个亮点(亮点只有一个像素,其实也看不出来),丢失了大量的暗部细节。
(3)图7-5(3)使用对数变换将图7-5(2)的动态范围进行了非线性压缩,因此清晰地显示了频谱特征。
图7-5 傅里叶频谱的对数变换
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/134726151)
Copyright 2023 youcans, XUPT
Crated:2023-12-01
欢迎关注本书CSDN独家连载专栏
《数字图像处理-OpenCV/Python》连载: https://blog.csdn.net/youcans/category_12418787.html
原文地址:https://blog.csdn.net/youcans/article/details/134726151
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_27164.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!