ivan@78
|
1 function [x,L] = mirdwt(yl,yh,h,L);
|
ivan@78
|
2 % function [x,L] = mirdwt(yl,yh,h,L);
|
ivan@78
|
3 %
|
ivan@78
|
4 % Function computes the inverse redundant discrete wavelet
|
ivan@78
|
5 % transform x for a 1D or 2D input signal. (Redundant means here
|
ivan@78
|
6 % that the sub-sampling after each stage of the forward transform
|
ivan@78
|
7 % has been omitted.) yl contains the lowpass and yl the highpass
|
ivan@78
|
8 % components as computed, e.g., by mrdwt. In the case of a 2D
|
ivan@78
|
9 % signal, the ordering in
|
ivan@78
|
10 % yh is [lh hl hh lh hl ... ] (first letter refers to row, second
|
ivan@78
|
11 % to column filtering).
|
ivan@78
|
12 %
|
ivan@78
|
13 % Input:
|
ivan@78
|
14 % yl : lowpass component
|
ivan@78
|
15 % yh : highpass components
|
ivan@78
|
16 % h : scaling filter
|
ivan@78
|
17 % L : number of levels. In the case of a 1D signal,
|
ivan@78
|
18 % length(yl) must be divisible by 2^L;
|
ivan@78
|
19 % in the case of a 2D signal, the row and
|
ivan@78
|
20 % the column dimension must be divisible by 2^L.
|
ivan@78
|
21 %
|
ivan@78
|
22 % Output:
|
ivan@78
|
23 % x : finite length 1D or 2D signal
|
ivan@78
|
24 % L : number of levels
|
ivan@78
|
25 %
|
ivan@78
|
26 % HERE'S AN EASY WAY TO RUN THE EXAMPLES:
|
ivan@78
|
27 % Cut-and-paste the example you want to run to a new file
|
ivan@78
|
28 % called ex.m, for example. Delete out the % at the beginning
|
ivan@78
|
29 % of each line in ex.m (Can use search-and-replace in your editor
|
ivan@78
|
30 % to replace it with a space). Type 'ex' in matlab and hit return.
|
ivan@78
|
31 %
|
ivan@78
|
32 %
|
ivan@78
|
33 % Example 1:
|
ivan@78
|
34 % xin = makesig('Leopold',8);
|
ivan@78
|
35 % h = daubcqf(4,'min');
|
ivan@78
|
36 % L = 1;
|
ivan@78
|
37 % [yl,yh,L] = mrdwt(xin,h,L);
|
ivan@78
|
38 % [x,L] = mirdwt(yl,yh,h,L)
|
ivan@78
|
39 % x = 0.0000 1.0000 0.0000 -0.0000 0 0 0 -0.0000
|
ivan@78
|
40 % L = 1
|
ivan@78
|
41 %
|
ivan@78
|
42 % Example 2:
|
ivan@78
|
43 % load lena;
|
ivan@78
|
44 % h = daubcqf(4,'min');
|
ivan@78
|
45 % L = 2;
|
ivan@78
|
46 % [ll_lev2,yh,L] = mrdwt(lena,h,L); % lena is a 256x256 matrix
|
ivan@78
|
47 % N = 256;
|
ivan@78
|
48 % lh_lev1 = yh(:,1:N);
|
ivan@78
|
49 % hl_lev1 = yh(:,N+1:2*N);
|
ivan@78
|
50 % hh_lev1 = yh(:,2*N+1:3*N);
|
ivan@78
|
51 % lh_lev2 = yh(:,3*N+1:4*N);
|
ivan@78
|
52 % hl_lev2 = yh(:,4*N+1:5*N);
|
ivan@78
|
53 % hh_lev2 = yh(:,5*N+1:6*N);
|
ivan@78
|
54 % figure; colormap(gray); imagesc(lena); title('Original Image');
|
ivan@78
|
55 % figure; colormap(gray); imagesc(ll_lev2); title('LL Level 2');
|
ivan@78
|
56 % figure; colormap(gray); imagesc(hh_lev2); title('HH Level 2');
|
ivan@78
|
57 % figure; colormap(gray); imagesc(hl_lev2); title('HL Level 2');
|
ivan@78
|
58 % figure; colormap(gray); imagesc(lh_lev2); title('LH Level 2');
|
ivan@78
|
59 % figure; colormap(gray); imagesc(hh_lev1); title('HH Level 1');
|
ivan@78
|
60 % figure; colormap(gray); imagesc(hl_lev2); title('HL Level 1');
|
ivan@78
|
61 % figure; colormap(gray); imagesc(lh_lev2); title('LH Level 1');
|
ivan@78
|
62 % [lena_Hat,L] = mirdwt(ll_lev2,yh,h,L);
|
ivan@78
|
63 % figure; colormap(gray); imagesc(lena_Hat);
|
ivan@78
|
64 % title('Reconstructed Image');
|
ivan@78
|
65 %
|
ivan@78
|
66 % See also: mdwt, midwt, mrdwt
|
ivan@78
|
67 %
|
ivan@78
|
68 % Warning! min(size(yl))/2^L should be greater than length(h)
|
ivan@78
|
69 %
|
ivan@78
|
70
|
ivan@78
|
71 %File Name: mirdwt.m
|
ivan@78
|
72 %Last Modification Date: 08/07/95 15:14:21
|
ivan@78
|
73 %Current Version: mirdwt.m 2.4
|
ivan@78
|
74 %File Creation Date: Wed Oct 19 10:51:58 1994
|
ivan@78
|
75 %Author: Markus Lang <lang@jazz.rice.edu>
|
ivan@78
|
76 %
|
ivan@78
|
77 %Copyright (c) 2000 RICE UNIVERSITY. All rights reserved.
|
ivan@78
|
78 %Created by Markus Lang, Department of ECE, Rice University.
|
ivan@78
|
79 %
|
ivan@78
|
80 %This software is distributed and licensed to you on a non-exclusive
|
ivan@78
|
81 %basis, free-of-charge. Redistribution and use in source and binary forms,
|
ivan@78
|
82 %with or without modification, are permitted provided that the following
|
ivan@78
|
83 %conditions are met:
|
ivan@78
|
84 %
|
ivan@78
|
85 %1. Redistribution of source code must retain the above copyright notice,
|
ivan@78
|
86 % this list of conditions and the following disclaimer.
|
ivan@78
|
87 %2. Redistribution in binary form must reproduce the above copyright notice,
|
ivan@78
|
88 % this list of conditions and the following disclaimer in the
|
ivan@78
|
89 % documentation and/or other materials provided with the distribution.
|
ivan@78
|
90 %3. All advertising materials mentioning features or use of this software
|
ivan@78
|
91 % must display the following acknowledgment: This product includes
|
ivan@78
|
92 % software developed by Rice University, Houston, Texas and its contributors.
|
ivan@78
|
93 %4. Neither the name of the University nor the names of its contributors
|
ivan@78
|
94 % may be used to endorse or promote products derived from this software
|
ivan@78
|
95 % without specific prior written permission.
|
ivan@78
|
96 %
|
ivan@78
|
97 %THIS SOFTWARE IS PROVIDED BY WILLIAM MARSH RICE UNIVERSITY, HOUSTON, TEXAS,
|
ivan@78
|
98 %AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
ivan@78
|
99 %BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
ivan@78
|
100 %FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RICE UNIVERSITY
|
ivan@78
|
101 %OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
ivan@78
|
102 %EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
ivan@78
|
103 %PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
ivan@78
|
104 %OR BUSINESS INTERRUPTIONS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
ivan@78
|
105 %WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
ivan@78
|
106 %OTHERWISE), PRODUCT LIABILITY, OR OTHERWISE ARISING IN ANY WAY OUT OF THE
|
ivan@78
|
107 %USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
ivan@78
|
108 %
|
ivan@78
|
109 %For information on commercial licenses, contact Rice University's Office of
|
ivan@78
|
110 %Technology Transfer at techtran@rice.edu or (713) 348-6173
|
ivan@78
|
111 %
|
ivan@78
|
112 %Change History:
|
ivan@78
|
113 %
|
ivan@78
|
114 %Modification #1
|
ivan@78
|
115 %Mon Aug 7 15:09:51 CDT 1995
|
ivan@78
|
116 %Rebecca Hindman <hindman@ece.rice.edu>
|
ivan@78
|
117 %Added L to function line so that it can be displayed as an output
|
ivan@78
|
118 %
|
ivan@78
|
119 %Modification #2
|
ivan@78
|
120 %Thursday Mar 2 2000
|
ivan@78
|
121 % Added Example 2
|
ivan@78
|
122 % Felix Fernandes <felixf@rice.edu>
|
ivan@78
|
123
|
ivan@78
|
124
|
ivan@78
|
125
|
ivan@78
|
126
|
ivan@78
|
127
|
ivan@78
|
128
|
ivan@78
|
129
|
ivan@78
|
130
|
ivan@78
|
131
|
ivan@78
|
132
|
ivan@78
|
133
|
ivan@78
|
134
|
ivan@78
|
135
|
ivan@78
|
136
|
ivan@78
|
137
|
ivan@78
|
138
|