image manipulation

Please support our C# advertiser: $4.95 a Month - ASP.NET Web Hosting – Click Here!
Reply

Join Date: Dec 2005
Posts: 14
Reputation: manar is an unknown quantity at this point 
Solved Threads: 0
manar manar is offline Offline
Newbie Poster

image manipulation

 
0
  #1
Mar 31st, 2006
hi
i want to find the correlation coefficient between two images, so i have to apply mathmatical equations on them.
i want to ask how can i convert the image to a form that can deal with maths' operator like -, /, XOR after reading it from a file.

i try to convert it to byte or a string to make calculations but that does not work! :cry:
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 1,496
Reputation: WolfPack has a spectacular aura about WolfPack has a spectacular aura about WolfPack has a spectacular aura about 
Solved Threads: 104
Moderator
WolfPack's Avatar
WolfPack WolfPack is offline Offline
Mentally Challenged Mod.

Re: image manipulation

 
0
  #2
Apr 1st, 2006
You will have to read the image into a two dimensional structure, maybe a two dimensional array, and then apply the operations to corresponding elements at position x and y.
  1. ResultantImage[x][y] = Image1[x][y] - Image2[x][y]

You could do this even with a single dimensional array, but that is rather unintuitive in my opinion.
Reply With Quote Quick reply to this message  
Join Date: Dec 2005
Posts: 14
Reputation: manar is an unknown quantity at this point 
Solved Threads: 0
manar manar is offline Offline
Newbie Poster

Re: image manipulation

 
0
  #3
Apr 1st, 2006
hi
thanks for your reply;
i deal with two black and white images(binary images); and want to make correlation method calculations on them to find correlation coefficient.
so the pixel value is (0,0,0) for black or (1,1,1) for white.
that i use the GetPixel then test if its black or white and set an integer to 0 if black or 1 if white.
and then deal with these integer instead of converting the images to array int as you suggest.
this is the code below; its behind the correlation coeff button; I have error when debugging at the bold font:
note: im sure that both images have the same size.
any suggestions...




int q=0;
int w=0;
Bitmap a = (Bitmap)Image.FromFile("C:\\standard\\test1.bmp");
Bitmap b = (Bitmap)Image.FromFile("C:\\standard\\test2.bmp");

int x=0;
int y=0;
int i=0;
int j=0;

for(i=0;i<=a.Height;i++)
{
for(j=0;j<=a.Width;j++)
{
Color c=a.GetPixel(i,j);
Color r=b.GetPixel(i,j);

if (c.R == 0 && c.G == 0 && c.B == 0)
q = 0;
if (c.R == 1 && c.G == 01 && c.B == 1)
q = 1;



if (r.R == 0 && r.G == 0 && r.B == 0)
w = 0;
if (r.R == 1 && r.G == 1 && r.B == 1)
w = 1;

x+=q;
y+=w;
}
}
int s=0;
int ss=0;
int sss=0;


for(i=0;i<=a.Height;i++)
{
for(j=0;j<=a.Width;j++)
{
Color c=a.GetPixel(i,j);
Color r=b.GetPixel(i,j);


if (c.R == 0 && c.G == 0 && c.B == 0)
q = 0;
if (c.R == 1 && c.G == 01 && c.B == 1)
q = 1;



if (r.R == 0 && r.G == 0 && r.B == 0)
w = 0;
if (r.R == 1 && r.G == 1 && r.B == 1)
w = 1;



s+=(q-x)*(q-x);
ss+=(w-y)*(w-y);
}
}

for(i=0;i<=a.Height;i++)
{
for(j=0;j<=a.Width;j++)
{
Color c=a.GetPixel(i,j);
Color r=b.GetPixel(i,j);
if (c.R == 0 && c.G == 0 && c.B == 0)
q = 0;
if (c.R == 1 && c.G == 01 && c.B == 1)
q = 1;



if (r.R == 0 && r.G == 0 && r.B == 0)
w = 0;
if (r.R == 1 && r.G == 1 && r.B == 1)
w = 1;

sss+=(q-x)*(w-y);

}
}
double corr;

corr = sss/(System.Math.Sqrt(((s*s)+(ss*ss))));

label1.Text = corr.ToString();

}
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 1,496
Reputation: WolfPack has a spectacular aura about WolfPack has a spectacular aura about WolfPack has a spectacular aura about 
Solved Threads: 104
Moderator
WolfPack's Avatar
WolfPack WolfPack is offline Offline
Mentally Challenged Mod.

Re: image manipulation

 
0
  #4
Apr 1st, 2006
Does this happen at runtime or compile time?
Reply With Quote Quick reply to this message  
Join Date: Dec 2005
Posts: 14
Reputation: manar is an unknown quantity at this point 
Solved Threads: 0
manar manar is offline Offline
Newbie Poster

Re: image manipulation

 
0
  #5
Apr 1st, 2006
its happen when runtime " a break"
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 1,496
Reputation: WolfPack has a spectacular aura about WolfPack has a spectacular aura about WolfPack has a spectacular aura about 
Solved Threads: 104
Moderator
WolfPack's Avatar
WolfPack WolfPack is offline Offline
Mentally Challenged Mod.

Re: image manipulation

 
0
  #6
Apr 1st, 2006
Comment out all the other irrelevant code in the loop and other irrelevent code after the loop so that only this remains.
  1. for(i=0;i<=a.Height;i++)
  2. {<blockquote>for(j=0;j<=a.Width;j++)
  3. {<blockquote>Color c=a.GetPixel(i,j);</blockquote>}</blockquote>}
See if the error comes up again. If not, keep on adding lines until you get the error, and try to see what are the values of i and j this happens.
Reply With Quote Quick reply to this message  
Join Date: Dec 2005
Posts: 14
Reputation: manar is an unknown quantity at this point 
Solved Threads: 0
manar manar is offline Offline
Newbie Poster

Re: image manipulation

 
0
  #7
Apr 1st, 2006
thanks
the error is at the last pixel of the image!!!
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 1,496
Reputation: WolfPack has a spectacular aura about WolfPack has a spectacular aura about WolfPack has a spectacular aura about 
Solved Threads: 104
Moderator
WolfPack's Avatar
WolfPack WolfPack is offline Offline
Mentally Challenged Mod.

Re: image manipulation

 
0
  #8
Apr 1st, 2006
Okay so you can handle that error now?
Reply With Quote Quick reply to this message  
Join Date: Dec 2005
Posts: 14
Reputation: manar is an unknown quantity at this point 
Solved Threads: 0
manar manar is offline Offline
Newbie Poster

Re: image manipulation

 
0
  #9
Apr 1st, 2006
hi
at last i have an int result and i want to display it in the form
the label deal with charachter only so i want to use MsgBox like this:

corr = sss/(System.Math.Sqrt(((s*s)+(ss*ss))));
string corrv = corr.ToString();
MessageBox.Show(corrv, "correlation coeficiant");

But the box give a charachter result like this "NAN"
how can i display the integer value
thankx
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 1,496
Reputation: WolfPack has a spectacular aura about WolfPack has a spectacular aura about WolfPack has a spectacular aura about 
Solved Threads: 104
Moderator
WolfPack's Avatar
WolfPack WolfPack is offline Offline
Mentally Challenged Mod.

Re: image manipulation

 
0
  #10
Apr 1st, 2006
NAN is short for "Not A Number". You get this for values like infinity. Check the values of sss and (s*s)+(ss*ss). Most probably either both of them are 0 or the (s*s)+(ss*ss)value is zero. You should know already that 0 divided by 0 is undefined and any number defined by 0 is also undefined. You should check for these conditions before dividing.

Also use [code][/code] when posting code.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC