Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

dwt.2d

Two-Dimensional Discrete Wavelet Transform


Description

Performs a separable two-dimensional discrete wavelet transform (DWT) on a matrix of dyadic dimensions.

Usage

dwt.2d(x, wf, J = 4, boundary = "periodic")
idwt.2d(y)

Arguments

x

input matrix (image)

wf

name of the wavelet filter to use in the decomposition

J

depth of the decomposition, must be a number less than or equal to log(min{M,N},2)

boundary

only "periodic" is currently implemented

y

an object of class dwt.2d

Details

See references.

Value

List structure containing the 3J+1 sub-matrices from the decomposition.

Author(s)

B. Whitcher

References

Mallat, S. (1998) A Wavelet Tour of Signal Processing, Academic Press.

Vetterli, M. and J. Kovacevic (1995) Wavelets and Subband Coding, Prentice Hall.

See Also

Examples

## Xbox image
data(xbox)
xbox.dwt <- dwt.2d(xbox, "haar", 3)
par(mfrow=c(1,1), pty="s")
plot.dwt.2d(xbox.dwt)
par(mfrow=c(2,2), pty="s")
image(1:dim(xbox)[1], 1:dim(xbox)[2], xbox, xlab="", ylab="",
      main="Original Image")
image(1:dim(xbox)[1], 1:dim(xbox)[2], idwt.2d(xbox.dwt), xlab="", ylab="",
      main="Wavelet Reconstruction")
image(1:dim(xbox)[1], 1:dim(xbox)[2], xbox - idwt.2d(xbox.dwt),
      xlab="", ylab="", main="Difference")

## Daubechies image
data(dau)
par(mfrow=c(1,1), pty="s")
image(dau, col=rainbow(128))
sum(dau^2)
dau.dwt <- dwt.2d(dau, "d4", 3)
plot.dwt.2d(dau.dwt)
sum(plot.dwt.2d(dau.dwt, plot=FALSE)^2)

waveslim

Basic Wavelet Routines for One-, Two-, and Three-Dimensional Signal Processing

v1.8.2
BSD_3_clause + file LICENSE
Authors
Brandon Whitcher
Initial release
2020-02-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.