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.
Figure 1:
Step 2: Now drag and drop the following tools on the Form from toolbox.
Two LinkLable
One Button
Two OpenFileDialog
ProgressBar
PictureBox
Figure 2:
Step 3: Go to properties window and design the form as you want.
Figure 3:
Step 4: Double click on form and write the following line on the form_load.
- private void Form1_Load(object sender, EventArgs e)
- {
- progressBar1.Visible = false;
- pictureBox1.Visible = false;
- }
Step 5: Add namespace
Step 6: Write the following line on the linkLabel1_LinkClicked event
- private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- openFileDialog1.FileName = "";
- openFileDialog1.Title = "Images";
- openFileDialog1.Filter = "All Images|*.jpg; *.bmp; *.png";
- openFileDialog1.ShowDialog();
- if (openFileDialog1.FileName.ToString() != "")
- {
- fname1 = openFileDialog1.FileName.ToString();
- }
- }
Step 7: Write the following line on the linkLabel2_LinkClicked event
- private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- openFileDialog2.FileName = "";
- openFileDialog2.Title = "Images";
- openFileDialog2.Filter = "All Images|*.jpg; *.bmp; *.png";
- openFileDialog2.ShowDialog();
- if (openFileDialog2.FileName.ToString() != "")
- {
- fname2 = openFileDialog2.FileName.ToString();
- }
- }
Step 8: Finally write the follwoing code in the button click event.
- private void button1_Click(object sender, EventArgs e)
- {
- progressBar1.Visible = true;
- string img1_ref, img2_ref;
- img1 = new Bitmap(fname1);
- img2 = new Bitmap(fname2);
- progressBar1.Maximum = img1.Width;
- if (img1.Width == img2.Width && img1.Height == img2.Height)
- {
- for (int i = 0; i < img1.Width; i++)
- {
- for (int j = 0; j < img1.Height; j++)
- {
- img1_ref = img1.GetPixel(i, j).ToString();
- img2_ref = img2.GetPixel(i, j).ToString();
- if (img1_ref != img2_ref)
- {
- count2++;
- flag = false;
- break;
- }
- count1++;
- }
- progressBar1.Value++;
- }
- if (flag == false)
- MessageBox.Show("Sorry, Images are not same , " + count2 + " wrong pixels found");
- else
- MessageBox.Show(" Images are same , " + count1 + " same pixels found and " + count2 + " wrong pixels found");
- }
- else
- MessageBox.Show("can not compare this images");
- this.Dispose();
- }
Step 9: Now debug the application. When you compare same images like as follows:
Img 1:
Img 2:
Then the following output will occur.
Figure 4:
Step 10: When you compare different images like as follows:
Img 3_Different:
Then the following output will occur.
Figure 5: