如何在图像上应用离散小波变换
我正在实现一个将验证签名图像的android应用程序,决定使用离散小波变换方法(symmlet-8),该方法需要应用离散小波变换并使用低通和高通滤波器分离图像并检索小波变换系数。
这些方程显示了我无法理解的符号,因此无法轻松进行数学计算,也不知道如何对我的 x 和 y 点应用低通和高通滤波器。
有没有任何教程可以向您展示如何轻松地将离散小波变换应用于我的图像,并将其分解为数字?
预先非常感谢。
I am implementing an android application that will verify signature images , decided to go with the Discrete wavelet transform method (symmlet-8) the method requires to apply the discrete wavelet transform and separate the image using low-pass and high-pass filter and retrieve the wavelet transform coefficients.
the equations show notations that I cant understand thus can't do the math easily , also didn't know how to apply low-pass and high-pass filters to my x and y points.
is there any tutorial that shows you how to apply the discrete wavelet transform to my image easily that breaks it out in numbers?
thanks alot in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从高层次的角度来看,您首先提取 RGB 图像的数据(通常分为 3 个通道)。然后,对于每个通道,将图像分为 4 个:
左上角的低通垂直 + 左上角的低通水平
低通垂直 + 右上角的高通水平
高通垂直 + 左下角的低通水平
高右下角的 Pass Vertical+High Pass Horizontal
您可以通过执行 2 次通过(1 次垂直和 1 次水平)来获得此结果。然后迭代几次,将过滤器应用到左上角,以获得最终结果(金字塔)。最后,重新组合颜色通道。
看一下这里的代码(可以忽略RGB<->YUV颜色变换):
http://code.google.com /p/kanzi/source/browse/java/src/kanzi/test/TestDWT2.java
这里是二维小波变换的实现:http://code.google.com/p /kanzi/source/browse/java/src/kanzi/transform/DWT_CDF_9_7.java(离散小波变换 Cohen-Daubechies-Fauveau 9/7 2D 信号)
变换与您的变换不同(因此实现细节不同,但通用算法适用)。
这应该足以帮助您入门。
From a high level view point, you first extract the data of your RGB image (typically splitting the 3 channels). Then, for each channel, you split your image into 4:
Low Pass Vertical+Low Pass Horizontal in the top left corner
Low Pass Vertical+High Pass Horizontal in the top right corner
High Pass Vertical+Low Pass Horizontal in the lower left corner
High Pass Vertical+High Pass Horizontal in the lower right corner
You can obtain this result by doing 2 passes (1 vertical and 1 horizontal). Then you iterate several times, applying the filter to the top left corner, to obtain the final result (pyramid). Finally, you re-combine the color channels.
Take a look at the code here (you can ignore the RGB<->YUV color transform):
http://code.google.com/p/kanzi/source/browse/java/src/kanzi/test/TestDWT2.java
and here for the implementation of the 2D Wavelet transform: http://code.google.com/p/kanzi/source/browse/java/src/kanzi/transform/DWT_CDF_9_7.java (Discrete Wavelet Transform Cohen-Daubechies-Fauveau 9/7 for 2D signals)
The transform is different from yours (so the implementation details differ, but the general algorithm applies).
That should be enough info to get you started.