       mutual information of red and green channel

• To: mathgroup at smc.vnet.net
• Subject: [mg81274] mutual information of red and green channel
• From: vickyisai at gmail.com
• Date: Tue, 18 Sep 2007 00:40:54 -0400 (EDT)

```Hello

I am using the following code to calculate mutual information of red
and green channel of an image.

I am calculating Ixy= Sum(i)Sum(j) P(REDi,GREENj) Log[P(REDi,GREENj)/
P(REDi)/P(GREENj)  ]

(that is this formula
)

I am getting an error of  "Indeterminate expression 0(-=E2=88=9E) encountered.
"

I believe I am getting this because I am taking Probability of Redi
from a histogram that I have computed (value of REDi divided by total
no of pixels ....as my probability of REDi. ame for GREENj
But that histogram has 0 at some places which is leading to divide by
zero.

(i plotted that histogram to check that)

How should I calculated mutual information of red and green channel of
an image.

( I use Mathematica 5.2 and dont have image processing package)
Thank You

Code is below:
--------------------------------------------------------------------------
image=Import["c:/fish.ppm"];
(* Show[image]; *)

part=image[[1,1]];

red=part[[All,All,1]];

histRed=Table[0,{256}];

For[i=1,i<Dimensions[red][],++i,
For[j=1,j<Dimensions[red][],++j,
indxr=Floor[red[[i,j]]]+1;
histRed[[indxr]]=histRed[[indxr]]+1;
]
]
(* histR=ListPlot[histRed,PlotJoined=EF=94=A2True]; *)

green=part[[All,All,2]];
histGreen=Table[0,{256}];

For[i=1,i<Dimensions[green][],++i,
For[j=1,j<Dimensions[green][],++j,
indxg=Floor[green[[i,j]]]+1;
histGreen[[indxg]]=histGreen[[indxg]]+1;
]
]
(* histG=ListPlot[histGreen,PlotJoined=EF=94=A2True]; *)

(* Joint Prob. Matrix *)
joinRG=Table[0,{256},{256}];

For[i=1,i<Dimensions[red][],++i,
For[j=1,j<Dimensions[green][], ++j,
idx1=Floor[red[[i,j]]]+1;
idx2=Floor[green[[i,j]]]+1;
joinRG[[idx1,idx2]]=joinRG[[idx1,idx2]]+1;
]
]

(*  Ixy= Sum(i)Sum(j) P(xi,yj) Log[P(xi,yj)/P(xi)/P(yj) *)

For[i=1,i<Dimensions[histRed][],++i,
For[j=1,j<Dimensions[histGreen][],++j,
Ixy = Ixy + joinRG[[i,j]] / 65536 * Log[2 , ,joinRG[[i,j]] /
histRed[[i]] / histGreen[[j]]   ]
]
]

```

• Prev by Date: Is RealTime3D back?
• Next by Date: Re: Defining a Function with an Indeterminate Number of Arguments
• Previous by thread: Re: Is RealTime3D back?
• Next by thread: Re: mutual information of red and green channel