本文介绍了对图像进行离散小波变换并在LL带系数中嵌入水印,再次执行IDWT-DWT时会丢失数据吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

0下投最爱


我正在编写一个图像水印系统,通过使用离散小波变换来变换图像的亮度通道,然后修改DWT输出的LL波段中的系数,从而在图像的低频段中隐藏水印.然后,我执行Inverse DWT并重建我的图像.

我遇到的问题是,当我修改DWT输出中的系数,然后修改DWT逆,然后再次修改DWT时,修改后的系数根本不同.

例如,2尺度DWT的LL频带中的输出系数之一是-0.10704,我将该系数修改为16.89,然后对我的数据执行了IDWT.然后,我获取IDWT的输出并对其再次执行DWT,将我的系数修改为16.89变为0.022.

我相当确定DWT和IDWT代码是正确的,因为我已经对其他库进行了测试,并且当滤波器系数和其他参数相同时,每个变换的输出都匹配. (由于四舍五入误差会在预期范围之内)

我遇到的主要问题是,我可能不太了解DWT,我认为DWT和IDWT应该算是无损的(除了四舍五入错误等),但这似乎不是案例在这里.

我希望对转换更加熟悉的人可以指出一个可能的问题,是否可能因为我在该位置的其他子带(LH,HL,HH)中的系数无关紧要而导致数据丢失?如果是这样,我如何确定这可能发生在哪些系数上?

我可以发布一些代码,如果有帮助的话,但是整个嵌入过程需要几百行,并且似乎与这个问题并不相关,因为我已经测试过手动修改系数数组,然后对IDWT进行处理.它,然后再次进行DWT,我修改的系数也不同.

0 down vote favorite


I''m writing an image watermarking system to hide a watermark in an image''s low frequency band by transforming the image''s luminance channel with a Discrete Wavelet Transform, then modifying coefficients in the LL band of the DWT output. I then do an Inverse DWT and rebuild my image.

The problem I''m having is when I modify coefficients in the DWT output, then inverse-DWT, and then DWT again, the modified coefficients are radically different.

For example, one of the output coefficients in the LL band of the 2-scale DWT was -0.10704, I modified this coefficient to be 16.89, then performed the IDWT on my data. I then took the output of the IDWT and performed a DWT on it again, and my coefficient which was modified to be 16.89 became 0.022.

I''m fairly certain that the DWT and IDWT code is correct because I''ve tested it against other libraries and the output from each transform matches when the filter coefficients and other parameters are the same. (Within what can be expected due to rounding error)

The main problem I have is that I perhaps don''t understand the DWT all that well, I thought DWT and IDWT were supposed to be reasonably lossless (Aside from rounding error and such), yet this doesn''t seem to be the case here.

I''m hoping someone more familiar with the transform can point me at a possible issue, is it possible that because the coefficients in my other subbands (LH, HL, HH) for that position are insignificant I''m losing data? If so, how can I determine which coefficients this may happen to?

I can post pieces of code if it will be helpful but the entire embedding process is several hundred lines and doesn''t really seem relevant to the question as I''ve tested modifying the array of coefficients by hand, then doing the IDWT on it, then doing a DWT again, and the coefficients I modified are different.

推荐答案


这篇关于对图像进行离散小波变换并在LL带系数中嵌入水印,再次执行IDWT-DWT时会丢失数据吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-26 01:57