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 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 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." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library – Reference Manual: DWT in two dimension</title>
<meta name="description" content="GNU Scientific Library – Reference Manual: DWT in two dimension">
<meta name="keywords" content="GNU Scientific Library – Reference Manual: DWT in two dimension">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="DWT-Transform-Functions.html#DWT-Transform-Functions" rel="up" title="DWT Transform Functions">
<link href="DWT-Examples.html#DWT-Examples" rel="next" title="DWT Examples">
<link href="DWT-in-one-dimension.html#DWT-in-one-dimension" rel="previous" title="DWT in one dimension">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="DWT-in-two-dimension"></a>
<div class="header">
<p>
Previous: <a href="DWT-in-one-dimension.html#DWT-in-one-dimension" accesskey="p" rel="previous">DWT in one dimension</a>, Up: <a href="DWT-Transform-Functions.html#DWT-Transform-Functions" accesskey="u" rel="up">DWT Transform Functions</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Wavelet-transforms-in-two-dimension"></a>
<h4 class="subsection">32.3.2 Wavelet transforms in two dimension</h4>
<a name="index-DWT_002c-two-dimensional"></a>
<p>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>
<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>
<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>
<p>The functions described in this section are declared in the header file
<samp>gsl_wavelet2d.h</samp>.
</p>
<dl>
<dt><a name="index-gsl_005fwavelet2d_005ftransform"></a>Function: <em>int</em> <strong>gsl_wavelet2d_transform</strong> <em>(const gsl_wavelet * <var>w</var>, double * <var>data</var>, size_t <var>tda</var>, size_t <var>size1</var>, size_t <var>size2</var>, gsl_wavelet_direction <var>dir</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005ftransform_005fforward"></a>Function: <em>int</em> <strong>gsl_wavelet2d_transform_forward</strong> <em>(const gsl_wavelet * <var>w</var>, double * <var>data</var>, size_t <var>tda</var>, size_t <var>size1</var>, size_t <var>size2</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005ftransform_005finverse"></a>Function: <em>int</em> <strong>gsl_wavelet2d_transform_inverse</strong> <em>(const gsl_wavelet * <var>w</var>, double * <var>data</var>, size_t <var>tda</var>, size_t <var>size1</var>, size_t <var>size2</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dd>
<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> (<em>+1</em>) or <code>backward</code> (<em>-1</em>). 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>
<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></dd></dl>
<dl>
<dt><a name="index-gsl_005fwavelet2d_005ftransform_005fmatrix"></a>Function: <em>int</em> <strong>gsl_wavelet2d_transform_matrix</strong> <em>(const gsl_wavelet * <var>w</var>, gsl_matrix * <var>m</var>, gsl_wavelet_direction <var>dir</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005ftransform_005fmatrix_005fforward"></a>Function: <em>int</em> <strong>gsl_wavelet2d_transform_matrix_forward</strong> <em>(const gsl_wavelet * <var>w</var>, gsl_matrix * <var>m</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005ftransform_005fmatrix_005finverse"></a>Function: <em>int</em> <strong>gsl_wavelet2d_transform_matrix_inverse</strong> <em>(const gsl_wavelet * <var>w</var>, gsl_matrix * <var>m</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dd><p>These functions compute the two-dimensional in-place wavelet transform
on a matrix <var>a</var>.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005fwavelet2d_005fnstransform"></a>Function: <em>int</em> <strong>gsl_wavelet2d_nstransform</strong> <em>(const gsl_wavelet * <var>w</var>, double * <var>data</var>, size_t <var>tda</var>, size_t <var>size1</var>, size_t <var>size2</var>, gsl_wavelet_direction <var>dir</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005fnstransform_005fforward"></a>Function: <em>int</em> <strong>gsl_wavelet2d_nstransform_forward</strong> <em>(const gsl_wavelet * <var>w</var>, double * <var>data</var>, size_t <var>tda</var>, size_t <var>size1</var>, size_t <var>size2</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005fnstransform_005finverse"></a>Function: <em>int</em> <strong>gsl_wavelet2d_nstransform_inverse</strong> <em>(const gsl_wavelet * <var>w</var>, double * <var>data</var>, size_t <var>tda</var>, size_t <var>size1</var>, size_t <var>size2</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dd><p>These functions compute the two-dimensional wavelet transform in
non-standard form.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005fwavelet2d_005fnstransform_005fmatrix"></a>Function: <em>int</em> <strong>gsl_wavelet2d_nstransform_matrix</strong> <em>(const gsl_wavelet * <var>w</var>, gsl_matrix * <var>m</var>, gsl_wavelet_direction <var>dir</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005fnstransform_005fmatrix_005fforward"></a>Function: <em>int</em> <strong>gsl_wavelet2d_nstransform_matrix_forward</strong> <em>(const gsl_wavelet * <var>w</var>, gsl_matrix * <var>m</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dt><a name="index-gsl_005fwavelet2d_005fnstransform_005fmatrix_005finverse"></a>Function: <em>int</em> <strong>gsl_wavelet2d_nstransform_matrix_inverse</strong> <em>(const gsl_wavelet * <var>w</var>, gsl_matrix * <var>m</var>, gsl_wavelet_workspace * <var>work</var>)</em></dt>
<dd><p>These functions compute the non-standard form of the two-dimensional
in-place wavelet transform on a matrix <var>a</var>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Previous: <a href="DWT-in-one-dimension.html#DWT-in-one-dimension" accesskey="p" rel="previous">DWT in one dimension</a>, Up: <a href="DWT-Transform-Functions.html#DWT-Transform-Functions" accesskey="u" rel="up">DWT Transform Functions</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|