提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
1. 频率域增强的一般过程
频域率增强的一般过程如下:
f ( x , y ) → 傅里叶变换 D F T F ( u , v ) → 滤波 H ( u , v ) F ( u , v ) H ( u , v ) → 傅里叶逆变换 I D F T g ( x , y ) f(x,y)\xrightarrow[傅里叶变换]{DFT} F(u,v)\xrightarrow[滤波]{H(u,v)}F(u,v)H(u,v)\xrightarrow[傅里叶逆变换]{IDFT}g(x,y) f(x,y)DFT傅里叶变换F(u,v)H(u,v)滤波F(u,v)H(u,v)IDFT傅里叶逆变换g(x,y)
我用大白话解释就是:先用傅里叶变换将图像变换到频率域(也就是频谱图),然后针对频谱图做图像变换(使用滤波器),使用滤波器进行图像变换后通过傅里叶逆变换将图像变换回空域图(也就是目标图像)。
频域特征与空域特征的对应关系:
- 频普中的低频分量对应了图像中的平滑区域。
- 频谱中的高频分量对应了图像中的边缘和变化剧烈区域。
实在抱歉,由于本人学艺不精,此处就不对傅里叶变换进行讲解,各位观众可以查看其它资料
频谱图的绘制代码和效果如下所示:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
def drawCircleOnImage(image, radiusLst):
"""
Draw multiple concentric circles on an image
:param image: raw image
:param radiusLst: Radii of concentric circles (Here is a list with multiple radii).
:return: Returns an image drawn on concentric circles.
"""
center = (image.shape[0] // 2, image.shape[1] // 2)
color = (0, 0, 0)
thickness = 1
for radius in radiusLst:
cv.circle(image, center, radius, color, thickness)
def generateSpectrumImage(image):
# 对原图像进行傅里叶变换,生成频谱图
dft = cv.dft(np.float32(image), flags=cv.DFT_COMPLEX_OUTPUT)
# 将频谱图上的低频移至中心
f_shift = np.fft.fftshift(dft)
# 生成可以显示的频谱图
f_img = 20 * np.log(cv.magnitude(f_shift[:, :, 0], f_shift[:, :, 1]) + 1)
drawCircleOnImage(f_img, [10, 20, 40, 80, 160, 460])
# 将低频从中心移回原处
i_shift = np.fft.ifftshift(f_shift)
# 进行计算傅里叶逆变换,将频谱图还原回空间域图像
dst = cv.idft(i_shift)
# 计算还原图像的幅度,并进行归一化处理
dst = cv.magnitude(dst[:, :, 0], dst[:, :, 1])
return f_img, dst
if __name__ == '__main__':
img = cv.imread('Image/Fig0601.tif', 0)
img1, img2 = generateSpectrumImage(img)
# 图像显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.size'] = 20
plt.figure(figsize=(20, 10))
imagesLst = [img, img1, img2]
labelLst = ["Original Image", "Radius=10", "Radius=20"]
for i in range(3):
plt.subplot(1, 3, i + 1), plt.title(labelLst[i]), plt.axis('off')
plt.imshow(imagesLst[i], cmap='gray')
plt.tight_layout()
plt.savefig("Image/tmp.png")
plt.show()

如上图所示:我们先将空域图(原始图像)转到频域图,然后将频域图有转为空域图,在经过一次变换后,图像几乎没有发生变化。
2. 低频滤波示例分析
2.1 理想低通滤波
在以原点为中心的一个园内无衰减的通过所有频率,而在这个圆外 “截止” 所有频率的二维低通滤波器,称为 理想低通滤波器(ILPF)。
2.1.1 原理说明
**理想低通滤波器(ILPF)**的传递函数规定如下: H ( u , v ) = { 1 , D ( u , v ) ≤ D 0 0 , D ( u , v ) > D 0 H(u,v)= \left\{ \begin{aligned} 1, &\quad D(u,v) \leq D_0 \\ 0, &\quad D(u,v) > D_0\\ \end{aligned} \right. H(u,v)

最低0.47元/天 解锁文章
1360

被折叠的 条评论
为什么被折叠?



