【图像处理】图像离散小波变换(Discrete Wavelet Transform)及python代码实现
Motivation
看到有論文用到了圖像的Haar Discrete Wavelet Transform(HDWT),前面也聽老師提到過用小波變換做去噪、超分的文章,于是借著這個機會好好學(xué)習(xí)一下。
直觀理解
參考知乎上的這篇文章:https://zhuanlan.zhihu.com/p/22450818 關(guān)于傅立葉變換和小波變換的直觀概念解釋的非常清楚(需要對傅立葉變換有基本的理解)
二維圖像離散小波變換(DWT)
先放一張圖直觀感受一下這個過程(圖中是經(jīng)過兩次DWT的)
1. 首先明確什么是H和L。H和L其實表示的是高通濾波器(High pass filter)和低通濾波器(Low pass filter)。高通濾波器用于提取邊緣特征,低通濾波器用于圖像近似(approximation).
2. 兩次濾波得到輸出結(jié)果。如下圖所示,先通過低通和高通濾波器(縱向 vertical),再分別通過一次低通和高通濾波器(橫向 horizontal)。最后得到LL, HL, LH, HH。分別表示近似圖像(也可以理解為壓縮了的圖像,有損失)、縱向邊緣特征(通過了縱向高通濾波器)、橫向邊緣特征(通過了橫向高通濾波器)、對角特征(diagonal 橫向縱向都通過高通濾波器)。
上圖看不太清楚的話可以看下面這張圖(看看后面的圖就好了,中間的過程感覺表示的不太對)
來源:Wavelet based transition region extraction for image segmentation
關(guān)于橫向和縱向的邊緣特征,可以看下面這張有條紋噪聲圖片的HDWT(Haar Discrete Wavelet Transform),比較明顯。
來源: Wavelet Deep Neural Network for Stripe Noise Removal
python代碼
import numpy as np from matplotlib import pyplot as plt import pywt import PILimg = PIL.Image.open("xxx.tif") img = np.array(img) LLY,(LHY,HLY,HHY) = pywt.dwt2(img, 'haar') plt.subplot(2, 2, 1) plt.imshow(LLY, cmap="Greys") plt.subplot(2, 2, 2) plt.imshow(LHY, cmap="Greys") plt.subplot(2, 2, 3) plt.imshow(HLY, cmap="Greys") plt.subplot(2, 2, 4) plt.imshow(HHY, cmap="Greys") plt.show()我的結(jié)果:
還是比較明顯能看出水平和縱向特征的。
參考文章
如果對您有幫助,請不要吝嗇您的點贊,如需轉(zhuǎn)載請評論告知!
在此謝過各位!
總結(jié)
以上是生活随笔為你收集整理的【图像处理】图像离散小波变换(Discrete Wavelet Transform)及python代码实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝Hadoop作业平台 宙斯Zeus(
- 下一篇: H3C的R390X G2服务器配置HCI