ウェーブレット変換における Dobecy ウェーブレット (DB ウェーブレット関数) の概要

内容は、ウィキペディアの db ウェーブレット関数の紹介からのものです。

Daubechies Wavelet (英語: Daubechies Wavelet) は、ベルギーの女性物理学者で数学者である Ingrid Daubechies にちなんで名付けられたウェーブレット関数です. Ingrid Daubechies は階層 (hierarchy) 性質を持つ A ウェーブレットを発見し、このウェーブレットは彼女にちなんで名付けられました. Dobesy ウェーブレットは主に離散ウェーブレット変換で使用されます。これは最も一般的に使用されるウェーブレット変換であり、通常はデジタル信号分析信号圧縮、およびノイズ除去で使用されます。

一般的に言えば、離散ウェーブレット変換は通常、直交ウェーブレット(orthogonal wavelet) に基づいており、Dobesy ウェーブレットも直交ウェーブレットです。高速ウェーブレット変換 (FWT)を介して簡単に実装できるため、デジタル信号処理の教科書でよく教えられています。

有限長のウェーブレットの場合、高速ウェーブレット変換 (FWT) に適用すると、2 つの実数で構成される配列が作成されます。1 つは、ウェーブレットフィルター(ウェーブレット フィルターとも呼ばれる) と呼ばれるハイパス フィルターの係数として使用されます。はマザー ウェーブレット)、2 番目はローパス フィルターの係数で、スケーリングフィルター(ファーザー ウェーブレットとも呼ばれます) と呼ばれます。

フィルターの長さ N を使用して、フィルターを DN として記述します。たとえば、N=2 の Dobesy ウェーブレットは D2 と書き、N=4 の Dobesy ウェーブレットは D4 と書きます (N は偶数です)。 . 実際、一般的に使用されるドベシアン ウェーブレットは D2 から D20 です。

  • 分類

    Dobesy ウェーブレットの分類は、消失モーメントの値 A (消失モーメントの数でもあります) (A はタップと呼ばれます)、調整関数 (スケーリング関数)、およびウェーブレット関数 (ウェーブレット関数) に基づいています。 ) の値は消失運動量 (タップ) の値と共に増加します: たとえば、A=1 の場合、ドベシー ウェーブレットはハール ウェーブレット (Haar ウェーブレット) であり、調整関数とウェーブレット関数は不連続です; A=2 の場合、 Dobesy ウェーブレットの調整関数とウェーブレット関数は滑らかに微分できない連続関数であり、A=3 の場合、調整関数とウェーブレット関数は既に連続関数であり、マイクロ関数になる可能性があります。同様に、A が大きくなると、Dobesy ウェーブレットの 2 つの関数の滑らかさがますます高くなります。以下は Dobesy ウェーブレットと異なる A の調整とウェーブレット関数の図です。

  • 長さ

    Dobesy ウェーブレットの長さは消失モーメントの値 A の 2 倍であるため、消失モーメントが A の場合、Dobesy ウェーブレットのウェーブレット フィルターとスケーリング フィルターの長さは両方とも 2A (N=2A) です。一般的に言えば、ドベシー ウェーブレットの長さを記述するためにまだ N を使用します: たとえば、A=1 の場合、運動量が消失し、ドベシー ウェーブレットは D2 と書かれ、長さは 2 (Haar ウェーブレットも) になります。 A= 2 では、2 つの消失運動量があり、ドベシー ウェーブレットは長さ 4 の D4 として記述されます。ただし、matlab の使用では、Dobesy ウェーブレットは dbA で記述され、調整フィルターの係数と A の関係は次のようになります。

  •                     

Dobesy ウェーブレットには、調整関数 (ローパス フィルター) とウェーブレット関数 (ハイパス フィルター) の 2 つの機能があります。したがって、最初に調整関数とウェーブレット関数の係数を確立する必要があります。

まず、多重解像度解析における調整関数の各層は、次の式のように記述できます。

 

アルゴリズム

以下は、圧縮後の元の画像の 1/4 である画像圧縮に適用されたウェーブレット変換のデモンストレーションです。

入力画像サイズが M*N であると仮定すると、画像が高周波数と低周波数を畳み込みます。

M のカーディナリティをサンプリングすると、両方の次元で (M/2)*N になります。

低周波画像を上に、高周波画像を下に置くと、低周波画像は元の画像のように見え、高周波画像は灰色の画像だけになります。

新しい画像に対して高周波と低周波の畳み込みを行うと、M*(N/2) のサイズになり、左に低周波、右に高周波が配置されます。

最後に、[0:M/2, 0:N/2] が元の圧縮イメージになることがわかります。

ウェーブレット変換の優れた特性により、複数回の圧縮後も元の情報を保持できます。つまり、次のコードを変更してループ モードに変更できます。

複数のウェーブレット変換を実行してから、同様のモードで複数の逆ウェーブレット変換を使用して、画像の元のサイズを復元します。

import numpy as np
def subsampling(x, d):
    if d == 1:
        y = x[::2, :]
    elif d == 2:
        y = x[:, ::2]
    return y

def upsampling(x, d):
    s = x.shape
    if d == 1:
        y = np.zeros((p * s[0], s[1]))
        y[::2, :] = x
    elif d == 2:
        y = np.zeros((s[0], p * s[1]))
        y[:, ::2] = x
    return y
    
def cconv(x, h, d):
    if d == 2:
        return np.transpose(cconv(np.transpose(x), h, 1))
    y = np.zeros(x.shape)
    p = len(h)
    pc = int(round( float((p - 1) / 2 )))
    for i in range(0, p):
        y = y + h[i] * np.roll(x, i - pc, axis=0)
    return y
    
def DWT(image, h, g): # discrete wavelet transformation
    fW = image.copy()
    j = int(np.log2(image.shape[0])-1)
    A = fW[:2**(j+1):,:2**(j+1):]
    Coarse = subsampling(cconv(A,h,1),1)
    Detail = subsampling(cconv(A,g,1),1)
    A = np.concatenate( (Coarse, Detail), axis=0 )
    Coarse = subsampling(cconv(A,h,2),2)
    Detail = subsampling(cconv(A,g,2),2)
    A = np.concatenate( (Coarse, Detail), axis=1 )
    fW[:2**(j+1):,:2**(j+1):] = A
    return fW
    
def iDWT(image, fW, h, g): #image is original, fW is after DWT of that.
    f1 = fW.copy()
    j = int(np.log2(image.shape[0])-1)
    A = f1[:2**(j+1):,:2**(j+1):]
    Coarse = A[:2**j:,:]
    Detail = A[2**j:2**(j+1):,:]
    h1 = h[::-1]
    g1 = g[::-1]
    Coarse = cconv(upsampling(Coarse,1),h1,1)
    Detail = cconv(upsampling(Detail,1),g1,1)
    A = Coarse + Detail
    Coarse = A[:,:2**j:]
    Detail = A[:,2**j:2**(j+1):]
    Coarse = cconv(upsampling(Coarse,2),h1,2)
    Detail = cconv(upsampling(Detail,2),g1,2)
    A = Coarse + Detail
    f1[:2**(j+1):,:2**(j+1):] = A
    return f1

参考文献

  1. フーリエ解析によるウェーブレットの最初のコース、A.Boggess、FJ Narcowich、2001

カテゴリ:

おすすめ

転載: blog.csdn.net/qq_38563206/article/details/125907389