具体讲解见:这俩是我觉得讲的最清晰的,入门最容易懂的,我想要的是小波变换后的4个信息图,具体代码如下:
import numpy as np
import pywt
import cv2
import matplotlib.pyplot as plt
def haar_img():
img_u8 = cv2.imread("./data/mini-MedPath/images/n001001.JPG")
img_f32 = cv2.cvtColor(img_u8, cv2.COLOR_BGR2GRAY).astype(np.float32)
plt.figure('二维小波一级变换')
coeffs = pywt.dwt2(img_f32, 'haar')
cA, (cH, cV, cD) = coeffs
plt.imshow(cH, 'gray')
plt.imsave('cH.png', cH, cmap='gray')
plt.imshow(cA, 'gray')
plt.imsave('cA.png', cA, cmap='gray')
plt.imshow(cV, 'gray')
plt.imsave('cV.png', cV, cmap='gray')
plt.imshow(cD, 'gray')
plt.imsave('cD.png', cD, cmap='gray')
# 将各个子图进行拼接,最后得到一张图
# AH = np.concatenate([cA, cH], axis=1)
# VD = np.concatenate([cV, cD], axis=1)
# img = np.concatenate([AH, VD], axis=0)
# return img
if __name__ == '__main__':
haar_img()
visio画的小波变换示意图: