**Name**

**ibiowave2** Reconstructs an image from a biorthogonal wavelet transform

**Command Synopsis**

**ibiowave2** [-r *NLevel*] [-h *HaarNLevel*] [-e *EdgeMode*] [-n *FilterNorm*] *WavTrans* *RecompImage* *ImpulseResponse1* *ImpulseResponse2*

-rNLevel: Start reconstruction from level NLevel (default 0)

-hHaarNLevel: Start reconstruction with Haar filter from level HaarNLevel down to level NLevel + 1

-eEdgeMode: Edge processing mode (0/1/2, default 2)

-nFilterNorm: Normalization mode for filter bank (0/1/2, default 0)

WavTrans: Input wavelet transform (wtrans2d)

RecompImage: Output reconstructed image (fimage)

ImpulseResponse1: Impulse response of filter 1 (fsignal)

ImpulseResponse2: Impulse response of filter 2 (fsignal)

**Function Summary**

void ibiowave2 (NumRec , Haar , Edge , FilterNorm , Wtrans , Output , Ri1 , Ri2 )

int *NumRec ;

int *Haar ;

int *Edge ;

int *FilterNorm ;

Wtrans2d Wtrans ;

Fimage Output ;

Fsignal Ri1 , Ri2 ;

**Description**

*ibiowave2* reconstructs an image from a sequence of sub-images forming
a wavelet decomposition, using filter banks associated to biorthogonal bases
of wavelets (see [CDF92]).
The notations that are used here have been already defined for *owave1*,
*biowave1*, and *biowave2*, so the reader is refered
to the documentation of these modules to see their signification.

*WavTrans* is the prefix name of a sequence of files containing
the coefficients of a wavelet decomposition
*D*^{1}_{1}, *D*^{1}_{2},..., *D*^{1}_{J}, *D*^{2}_{1},...*D*^{2}_{J}, *D*^{3}_{1},..., *D*^{3}_{J}, *A*_{J}.
*ibiowave2* computes *A*_{0}, i.e. the inverse wavelet transform
of *WavTrans*.

The algorithm has the same 2D structure as the one implemented in
*iowave2*. The difference lies in the fact that at each step,
a biortogonal 1D inverse transform is applied to the lines and
columns of average and detail sub-images instead of an orthogonal one.

The edge processing modes are the same as those of *ibiowave1*.

The complexity of the algorithm is roughly the same as for *biowave2*.

The name of the files containing the sub-signals
*D*^{1}_{1}, *D*^{1}_{2},..., *D*^{1}_{J}, *D*^{2}_{1},...*D*^{2}_{J}, *D*^{3}_{1},..., *D*^{3}_{J}, *A*_{J} must have the same prefix
and their syntax obeys the rules described in *owave2*.
The sample values of the reconstructed signal are stored in the file
*RecompImage*.

The coefficients (*h*_{k}) and
() of the filter's impulse
responses are read in the file *ImpulseResponse1*
and *ImpulseResponse2*.

- The -r, -h and -e options are exactly the same as in the orthogonal inverse
transform. See
*iowave2*module documentation for explanations. - The -n option specifies the normalisation mode of the filter impulse responses' coefficients. It should be selected according to the mode used for the decomposition in order to get exact reconstruction.

These options should be tuned in the same way as they were
for the decomposition (with the *owave2* module).

**See Also**

**Version 1.4**

Last Modification date : Thu Jan 31 15:10:50 2002

**Author**

Jean-Pierre D'Ales