I want to extract coefficient images from a DiscreteWaveletTransform and replace them by modified images of the same dimensions.
However, when I use DiscreteWaveletData without specifying the input image dimensions the dimension of the InverseWaveletTransform result is halved, and when I explicitly specify the type of wavelet (HaarWavelet) and transform (DiscreteWaveletTransform) used in the original forward transform the result of InverseWaveletTransform has the right dimensions, but looks quite different from the original input image.
What am I doing wrong?
im = Import["ExampleData\lena.tif"];
dwd = DiscreteWaveletTransform[im, Automatic, 1];
inrules = dwd[All, {"Image"}];

{rec1, rec2, rec3} =
InverseWaveletTransform[#] & /@ {dwd, DiscreteWaveletData[inrules],
DiscreteWaveletData[inrules, HaarWavelet[], "DiscreteWaveletTransform"]}

ImageDimensions[#] & /@ {rec1, rec2, rec3}
{{150, 116}, {75, 58}, {150, 116}}





WaveletMapIndexedand try to work from there ? – Sektor Jun 21 '15 at 15:15