Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 小波域图像增强_Image_Opencv_Wavelet_Wavelet Transform_Pywavelets - Fatal编程技术网

Image 小波域图像增强

Image 小波域图像增强,image,opencv,wavelet,wavelet-transform,pywavelets,Image,Opencv,Wavelet,Wavelet Transform,Pywavelets,嗨,我正试图在本文的基础上在小波域内对乳腺X光图像进行增强。其中使用了4级分解和“db16”小波。图中显示了主要的增强算法,以便更轻松、更快地阅读:。下面是我的代码实现: 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

嗨,我正试图在本文的基础上在小波域内对乳腺X光图像进行增强。其中使用了4级分解和“db16”小波。图中显示了主要的增强算法,以便更轻松、更快地阅读:。下面是我的代码实现:

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)

我正在处理的原始图像:分辨率为1024x1024,最大值为242,最小值为0。
增强图像的结果是:分辨率相同,但正如你所看到的,应该是黑色的区域有很多失真,而(我认为)乳房区域有增强。

我的假设是因为我对这些小波系数进行了计算,因为计算结果的最大值非常大,如1e+16或更多。但我不知道把这一点作为原因是否正确。对于计算中的零除法,我通过
compute()
中的第一行处理它,我也不确定这样做是否正确(通过将结果设置为0进行零除法).
我问这个问题是因为没有太多的小波系数操作/计算的例子,而且系数本身的值对我来说是任意的。

我希望任何人都能帮助我实现这种增强技术。
谢谢,很抱歉我的英语不好。

有一件事可能有用,那就是掩盖上面写着“L ML 37”的文字。我可以这样做,但你能详细说明一下吗?