Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 processing 基于D4小波的图像离散小波变换_Image Processing_Wavelet_Dwt - Fatal编程技术网

Image processing 基于D4小波的图像离散小波变换

Image processing 基于D4小波的图像离散小波变换,image-processing,wavelet,dwt,Image Processing,Wavelet,Dwt,我正在尝试用D4小波写前向小波变换。输入数据为24位/像素的color.bmp图像。 我取的小波系数: h0 = 0.48296 h1 = 0.83652 h2 = 0.22414 h3 = -0.12941 g0 = -0.12941 g1 = -0.22414 g2 = 0.83652 g3 = -0.48296 问题是,在转换过程中,我得到的值大于255或小于0。 我应该怎么做才能保持在[0255]范围内 谢谢。小波变换的输出总是超出输入像素范围。大多数图像处理库(包括Intel的)都

我正在尝试用D4小波写前向小波变换。输入数据为24位/像素的color.bmp图像。 我取的小波系数:

h0 = 0.48296
h1 = 0.83652
h2 = 0.22414
h3 = -0.12941

g0 = -0.12941
g1 = -0.22414
g2 = 0.83652
g3 = -0.48296
问题是,在转换过程中,我得到的值大于255或小于0。 我应该怎么做才能保持在[0255]范围内


谢谢。

小波变换的输出总是超出输入像素范围。大多数图像处理库(包括Intel的)都以32位浮点形式存储输出。因此,您也应该将输出存储在一个更大的容器中。然而,在小波逆变换中,你总是可以将输出饱和到原始图像范围,在你的例子中是[0255]

你可以从你的滤波器系数中看到,在你的小波变换中会有负值——在近似系数和细节系数中

我能想到一对小波,其中近似系数是非负的(如果输入信号/图像是非负的):haar小波,带

[h0 h1] = [1  1] / 2 


一般来说,细节系数仍然是部分负、部分正(你可能会发现单调递减的信号/图像,其中g总是非负的)。

谢谢,这很有帮助。但是,如果用户想要显示计算出的小波,应该怎么做?怎么可能得到这样好的输出呢?
[g0 g1] = [1 -1] / 2