本文介绍了使用vb.net比较图像的哪种算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请帮助我.
please help me.
thanks in advance.
推荐答案
Private Sub btnCheck_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnGo.Click
Me.Cursor = Cursors.WaitCursor
Application.DoEvents()
' Get the threshold.
Dim threshold As Integer = _
Integer.Parse(txtThreshold.Text)
' Load the images.
Dim bmp1 As Bitmap = Image.FromFile(txtFile1.Text)
Dim bmp2 As Bitmap = Image.FromFile(txtFile2.Text)
' Make a difference image.
Dim wid As Integer = Math.Min(bmp1.Width, bmp2.Width)
Dim hgt As Integer = Math.Min(bmp1.Height, bmp2.Height)
Dim bmp3 As New Bitmap(wid, hgt)
' Create the difference image.
Dim are_identical As Boolean = True
Dim r1, g1, b1, r2, g2, b2, r3, g3, b3 As Integer
Dim color1, color2 As Color
Dim eq_color As Color = Color.White
Dim ne_color As Color = Color.Red
Dim dr, dg, db, diff As Integer
For x As Integer = 0 To wid - 1
For y As Integer = 0 To hgt - 1
color1 = bmp1.GetPixel(x, y)
color2 = bmp2.GetPixel(x, y)
dr = CInt(color1.R) - color2.R
dg = CInt(color1.G) - color2.G
db = CInt(color1.B) - color2.B
diff = dr * dr + dg * dg + db * db
If diff <= threshold Then
bmp3.SetPixel(x, y, eq_color)
Else
bmp3.SetPixel(x, y, ne_color)
are_identical = False
End If
Next y
Next x
' Display the result.
picResult.Image = bmp3
Me.Cursor = Cursors.Default
If (bmp1.Width <> bmp2.Width) OrElse (bmp1.Height <> _
bmp2.Height) Then are_identical = False
If are_identical Then
MessageBox.Show("The images are identical")
Else
MessageBox.Show("The images are different")
End If
bmp1.Dispose()
bmp2.Dispose()
End Sub
这篇关于使用vb.net比较图像的哪种算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!