File: DWT-in-two-dimension.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: buster
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (152 lines) | stat: -rw-r--r-- 10,353 bytes parent folder | download
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 &ndash; Reference Manual: DWT in two dimension</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: DWT in two dimension">
<meta name="keywords" content="GNU Scientific Library &ndash; 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> &nbsp; [<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
&ldquo;standard&rdquo; and &ldquo;non-standard&rdquo; forms.
</p>
<p>The &ldquo;standard&rdquo; 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 &ldquo;non-standard&rdquo; 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> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>