1

こんにちは、この論文A Direct Image Contrast Enhancement Algorithm in the Wavelet Domain for Screening Mammograms に基づいてウェーブレット ドメインでマンモグラム画像強調を行おうとしています。「db16」ウェーブレットを使用した 4 レベルの分解が使用されている場所。主な拡張アルゴリズムは、この画像でより簡単かつ迅速に読むことができます: image .そして、ここに私のコード実装があります:

LAMBDA = 1.80

#based on eq.10 in the image
#coefficient computation
def compute(L,a,b,c):
    a_b = np.divide(a,b,out=np.zeros_like(a),where = b!=0)
    result = L * a_b * c
    print('max',np.max(result))
    return result

# For 4-level decomposition, 
C = pywt.wavedec2(img, 'db16', mode='periodization', level=4)
# C =  [cA4,(cH4,cV4,cD4), (cH3,cV3,cD3),(cH2,cV2,cD2),(cH1,cV1,cD1)]
# C =  (C[0],   (C[-4]),      (C[-3]),      (C[-2]),      (C[-1]))

cA4 = C[0]
lcA4 = cA4

# for cA3,
C3=(cA4,(C[-4]))
cA3=pywt.waverec2(C3, 'db16', mode='periodization')
#the computation
print(1)
lcD4 = tuple([LAMBDA * v for v in C[-4]])
LC3 = (lcA4,lcD4)
lcA3 = pywt.waverec2(LC3,'db16',mode='periodization')

# for cA2,
C2 = (cA3,(C[-3]))
cA2 = pywt.waverec2(C2,'db16',mode='periodization')
#the computation
print(2)
lcD3 = tuple([compute(LAMBDA,v,cA3,lcA3) for v in C[-3]])
LC2 = (lcA3,lcD3)
lcA2 = pywt.waverec2(LC2,'db16',mode='periodization')

#for cA1,
C1 = (cA2,(C[-2]))
cA1 = pywt.waverec2(C1,'db16',mode='periodization')
#the computation
print(3)
lcD2 = tuple([compute(LAMBDA,v,cA2,lcA2) for v in C[-2]])
LC1 = (lcA2,lcD2)
lcA1 = pywt.waverec2(LC1,'db16',mode='periodization')

#for cA0
C0 = (cA1,(C[-1]))
cA0 = pywt.waverec2(C0,'db16',mode='periodization')
# the computation
print(4)
lcD1 = tuple([compute(LAMBDA,v,cA1,lcA1) for v in C[-1]])
LC0 = (lcA1,lcD1)
lcA0 = pywt.waverec2(LC0,'db16',mode='periodization')

enhanced_img = lcA0.astype(np.uint8)

元の画像の作業: original-image解像度は 1024x1024 で、最大値は 242、最小値は 0です。強化
された画像の結果は次のとおりです。黒いと思われる部分に歪みがあり、胸の部分が強調されていると思います。これの原因についての私の仮説は、結果の計算の最大値が 1e+16 以上のように非常に大きいため、これらのウェーブレット係数で行った計算によるものです。しかし、これを原因として指摘することが正しいかどうかはわかりません。計算のゼロ除算については、最初の行で処理しましたが、それが正しいことであるかどうかもわかりません(ゼロ除算の結果を0に設定することにより)。

compute()
ウェーブレット係数の操作/計算の例は多くなく、係数自体の値は私にとっては任意なので、私はこれを求めています。

この拡張技術の実装を誰かが手伝ってくれることを願っています。
ありがとう、そして私の下手な英語でごめんなさい。

4

0 に答える 0