I am proud to present to you our unique image comparison application in C#.Net. C# .Net provides a good support for processing on the image, and the purpose of this article is not to give you a lot of insight into the image processing, rather it is written to help you start your image processing career using C#.

Let's create a project and compare two images using this application. to do this follows the given steps:

Step 1: In Visual studio 2005. click on file menu -> New -> Project then the following dialogbox will appear.

Image1.JPG

Figure 1:

Step 2: Now drag and drop the following tools on the Form from toolbox.

Two LinkLable
One Button
Two OpenFileDialog
ProgressBar
PictureBox

Image2.JPG

Figure 2:

Step 3: Go to properties window and design the form as you want.

Image3.JPG

Figure 3:

Step 4: Double click on form and write the following line on the form_load.

  1. private void Form1_Load(object sender, EventArgs e)
  2. {
  3. progressBar1.Visible = false;
  4. pictureBox1.Visible = false;
  5. }
Step 5: Add namespace
  1. using System.IO;

Step 6: Write the following line on the linkLabel1_LinkClicked event

  1. private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  2. {
  3. openFileDialog1.FileName = "";
  4. openFileDialog1.Title = "Images";
  5. openFileDialog1.Filter = "All Images|*.jpg; *.bmp; *.png";
  6. openFileDialog1.ShowDialog();
  7. if (openFileDialog1.FileName.ToString() != "")
  8. {
  9. fname1 = openFileDialog1.FileName.ToString();
  10. }
  11. }

Step 7: Write the following line on the linkLabel2_LinkClicked event

  1. private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  2. {
  3. openFileDialog2.FileName = "";
  4. openFileDialog2.Title = "Images";
  5. openFileDialog2.Filter = "All Images|*.jpg; *.bmp; *.png";
  6. openFileDialog2.ShowDialog();
  7. if (openFileDialog2.FileName.ToString() != "")
  8. {
  9. fname2 = openFileDialog2.FileName.ToString();
  10. }
  11. }

Step 8: Finally write the follwoing code in the button click event.

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. progressBar1.Visible = true;
  4. string img1_ref, img2_ref;
  5. img1 = new Bitmap(fname1);
  6. img2 = new Bitmap(fname2);
  7. progressBar1.Maximum = img1.Width;
  8. if (img1.Width == img2.Width && img1.Height == img2.Height)
  9. {
  10. for (int i = 0; i < img1.Width; i++)
  11. {
  12. for (int j = 0; j < img1.Height; j++)
  13. {
  14. img1_ref = img1.GetPixel(i, j).ToString();
  15. img2_ref = img2.GetPixel(i, j).ToString();
  16. if (img1_ref != img2_ref)
  17. {
  18. count2++;
  19. flag = false;
  20. break;
  21. }
  22. count1++;
  23. }
  24. progressBar1.Value++;
  25. }
  26. if (flag == false)
  27. MessageBox.Show("Sorry, Images are not same , " + count2 + " wrong pixels found");
  28. else
  29. MessageBox.Show(" Images are same , " + count1 + " same pixels found and " + count2 + " wrong pixels found");
  30. }
  31. else
  32. MessageBox.Show("can not compare this images");
  33. this.Dispose();
  34. }

Step 9: Now debug the application. When you compare same images like as follows:

Img1.jpg

Img 1:

Img2.jpg

Img 2:

Then the following output will occur.

Image4.JPG

Figure 4:

Step 10: When you compare different images like as follows:

Img3_Different.jpg

Img 3_Different:

Then the following output will occur.

Image5.JPG

Figure 5: