对我来说,小波分解属于研究大结构框架中图像预处理最基础的地方,由于创新性不足,一年多前尝试过以后就被搁置;现已研究出较新的多尺度/多分辨率特征提取算法,故将小波变换留个纪念。
import cv2
import numpy as np
import os
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import pywt
#读取图像
img = cv2.imread('G:/shale10058.bmp', cv2.IMREAD_GRAYSCALE)
#小波逐次分解
coeffs = pywt.wavedec2(img, 'haar', level=1)
cA, (cH, cV, cD) = coeffs#cA,cH,cV,cD分别代表从低频到高频的部分(即左上到右下)
coeffs2 = pywt.wavedec2(img, 'haar', level=2)
cA2, (cH2, cV2, cD2), (cH1, cV1, cD1) = coeffs2
#显示小波分解效果图
plt.figure(figsize=(15,5))
plt.figure(1)
plt.subplot(131)
img = np.array(img, dtype = np.uint8)
plt.imshow(img,'gray')
plt.title('yuantu')
plt.subplot(132)
cA = np.array(cA, dtype = np.uint8)
plt.imshow(cA,'gray')
plt.title('1-xiaobo')
plt.subplot(133)
cA2 = np.array(cA2, dtype = np.uint8)
plt.title('2-xiaobo')
plt.imshow(cA2,'gray')