Re: Wavelet and histogram
- To: mathgroup at smc.vnet.net
- Subject: [mg115886] Re: Wavelet and histogram
- From: "Vivek J. Joshi" <vivekj at wolfram.com>
- Date: Mon, 24 Jan 2011 05:23:01 -0500 (EST)
Hi,
Following is an example demonstrating how you can do this,
img == ExampleData[{"TestImage","Lena"}];
dwd == DiscreteWaveletTransform[img,DaubechiesWavelet[],3];
(* Extract wavelet Coefficients as Images and use ImageHistogram *)
Map[Part[#,1]->ImageHistogram[Part[#,2],Appearance-> "Stacked",ImageSize->2=
50,FrameTicks->Automatic]&,dwd[{_},"Image"]]
(* When using data form "Image" (as above) the Image coefficients have resc=
aled coefficient values (ImageAdjust[ImageApply[Abs,#]]&), Use ImageFunctio=
n->Identity to get "Actual Coefficient Values" *)
Map[Part[#,1]->ImageHistogram[Part[#,2],128,{-1,3},Appearance-> "Stacked",I=
mageSize->250,
FrameTicks->Automatic]&,dwd[{_},{"Image","ImageFunction"->Identity}]]
Taking a closer look at Min and Max values in each color channel,
Map[Part[#,1]->Map[{Min[Flatten[#]],Max[Flatten[#]]}&,Part[#,2]]&,dwd[{_}]]
{{0}->{{0.418884,2.02185},{-0.0239956,1.97373},{0.354499,1.68462}},
{1}->{{-0.292708,0.330631},{-0.439238,0.488894},{-0.400646,0.466974}},
{2}->{{-0.155326,0.279582},{-0.209463,0.281751},{-0.456572,0.345923}},
{3}->{{-0.112058,0.118638},{-0.149901,0.171185},{-0.279204,0.20271}}}
You can also use Histogram in place of ImageHistogram,
Map[Part[#,1]->Histogram[Map[Flatten,Part[#,2]],{0.02},ImageSize->250,Chart=
Layout->"Stacked",
ChartBaseStyle->EdgeForm[None],ChartStyle->{Red,Green,Blue},PlotRange->{{-1=
,3},Automatic}]&,dwd[{_}]]
Hope this helps.
Thanks,
Vivek J. Joshi
Kernel Developer
Wolfram Research, Inc.
On Jan 23, 2011, at 4:04 PM, Robert Pigeon wrote:
> Hello all,
>
> Let say i have a image that I defined using img == pasted
> pictured. Then I do a wavelet transfom:
>
> dwd == DiscreteWaveletTransform[img,DaubechiesWavelet[],3]. Now I can us=
e
> WaveletImagePlot[dwd] to look at the wavelet levels. I would like to do a=
n
> histogram on all or some level of dwd. I can't find how to do it. I looke=
d
> at WaveletMapIndexed, but I cant figure out how to do it....
>
>
>
> Any help will be appreciated.
>
>
>
> Thanks
>
> Robert