1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
<html lang="en">
<head>
<title>DWT in two dimension - GNU Scientific Library -- Reference Manual</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="GNU Scientific Library -- Reference Manual">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="DWT-Transform-Functions.html" title="DWT Transform Functions">
<link rel="prev" href="DWT-in-one-dimension.html" title="DWT in one dimension">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The GSL Team.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Free Software
Needs Free Documentation'', the Front-Cover text being ``A GNU Manual'',
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled ``GNU Free Documentation
License''.
(a) The Back-Cover Text is: ``You have the freedom to copy and modify this
GNU Manual.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<p>
<a name="DWT-in-two-dimension"></a>
Previous: <a rel="previous" accesskey="p" href="DWT-in-one-dimension.html">DWT in one dimension</a>,
Up: <a rel="up" accesskey="u" href="DWT-Transform-Functions.html">DWT Transform Functions</a>
<hr>
</div>
<h4 class="subsection">31.3.2 Wavelet transforms in two dimension</h4>
<p><a name="index-DWT_002c-two-dimensional-2315"></a>
The library provides functions to perform two-dimensional discrete
wavelet transforms on square matrices. The matrix dimensions must be an
integer power of two. There are two possible orderings of the rows and
columns in the two-dimensional wavelet transform, referred to as the
“standard” and “non-standard” forms.
<p>The “standard” transform performs a complete discrete wavelet
transform on the rows of the matrix, followed by a separate complete
discrete wavelet transform on the columns of the resulting
row-transformed matrix. This procedure uses the same ordering as a
two-dimensional fourier transform.
<p>The “non-standard” transform is performed in interleaved passes on the
rows and columns of the matrix for each level of the transform. The
first level of the transform is applied to the matrix rows, and then to
the matrix columns. This procedure is then repeated across the rows and
columns of the data for the subsequent levels of the transform, until
the full discrete wavelet transform is complete. The non-standard form
of the discrete wavelet transform is typically used in image analysis.
<p>The functions described in this section are declared in the header file
<samp><span class="file">gsl_wavelet2d.h</span></samp>.
<div class="defun">
— Function: int <b>gsl_wavelet2d_transform</b> (<var>const gsl_wavelet * w, double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_direction dir, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005ftransform-2316"></a></var><br>
— Function: int <b>gsl_wavelet2d_transform_forward</b> (<var>const gsl_wavelet * w, double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005ftransform_005fforward-2317"></a></var><br>
— Function: int <b>gsl_wavelet2d_transform_inverse</b> (<var>const gsl_wavelet * w, double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005ftransform_005finverse-2318"></a></var><br>
<blockquote>
<p>These functions compute two-dimensional in-place forward and inverse
discrete wavelet transforms in standard form on the
array <var>data</var> stored in row-major form with dimensions <var>size1</var>
and <var>size2</var> and physical row length <var>tda</var>. The dimensions must
be equal (square matrix) and are restricted to powers of two. For the
<code>transform</code> version of the function the argument <var>dir</var> can be
either <code>forward</code> (+1) or <code>backward</code> (-1). A
workspace <var>work</var> of the appropriate size must be provided. On exit,
the appropriate elements of the array <var>data</var> are replaced by their
two-dimensional wavelet transform.
<p>The functions return a status of <code>GSL_SUCCESS</code> upon successful
completion. <code>GSL_EINVAL</code> is returned if <var>size1</var> and
<var>size2</var> are not equal and integer powers of 2, or if insufficient
workspace is provided.
</p></blockquote></div>
<div class="defun">
— Function: int <b>gsl_wavelet2d_transform_matrix</b> (<var>const gsl_wavelet * w, gsl_matrix * m, gsl_wavelet_direction dir, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005ftransform_005fmatrix-2319"></a></var><br>
— Function: int <b>gsl_wavelet2d_transform_matrix_forward</b> (<var>const gsl_wavelet * w, gsl_matrix * m, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005ftransform_005fmatrix_005fforward-2320"></a></var><br>
— Function: int <b>gsl_wavelet2d_transform_matrix_inverse</b> (<var>const gsl_wavelet * w, gsl_matrix * m, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005ftransform_005fmatrix_005finverse-2321"></a></var><br>
<blockquote><p>These functions compute the two-dimensional in-place wavelet transform
on a matrix <var>a</var>.
</p></blockquote></div>
<div class="defun">
— Function: int <b>gsl_wavelet2d_nstransform</b> (<var>const gsl_wavelet * w, double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_direction dir, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005fnstransform-2322"></a></var><br>
— Function: int <b>gsl_wavelet2d_nstransform_forward</b> (<var>const gsl_wavelet * w, double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005fnstransform_005fforward-2323"></a></var><br>
— Function: int <b>gsl_wavelet2d_nstransform_inverse</b> (<var>const gsl_wavelet * w, double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005fnstransform_005finverse-2324"></a></var><br>
<blockquote><p>These functions compute the two-dimensional wavelet transform in
non-standard form.
</p></blockquote></div>
<div class="defun">
— Function: int <b>gsl_wavelet2d_nstransform_matrix</b> (<var>const gsl_wavelet * w, gsl_matrix * m, gsl_wavelet_direction dir, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005fnstransform_005fmatrix-2325"></a></var><br>
— Function: int <b>gsl_wavelet2d_nstransform_matrix_forward</b> (<var>const gsl_wavelet * w, gsl_matrix * m, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005fnstransform_005fmatrix_005fforward-2326"></a></var><br>
— Function: int <b>gsl_wavelet2d_nstransform_matrix_inverse</b> (<var>const gsl_wavelet * w, gsl_matrix * m, gsl_wavelet_workspace * work</var>)<var><a name="index-gsl_005fwavelet2d_005fnstransform_005fmatrix_005finverse-2327"></a></var><br>
<blockquote><p>These functions compute the non-standard form of the two-dimensional
in-place wavelet transform on a matrix <var>a</var>.
</p></blockquote></div>
<hr>The GNU Scientific Library - a free numerical library licensed under the GNU GPL<br>Back to the <a href="/software/gsl/">GNU Scientific Library Homepage</a></body></html>
|