This is what I used to compare two images, I know it looks a bit **** and so...but keep in mind that it was a long time since i wrote it...and hey, it works for me

Ive written some explanation comments in the code, please ask if anything is unclear.
VB Code:
  1. Private Sub ProcessImage()
  2.         Dim file As String = SavedFilePath
  3.         PicCap.Image = Nothing
  4.         Dim bm As Bitmap
  5.         Try
  6.             bm = Image.FromFile(filename)
  7.         Catch ex As Exception
  8.             MessageBox.Show(ex.Message)
  9.             Exit Sub
  10.         End Try
  11.         Dim y As Integer
  12.         Dim r As Double = 0
  13.         Dim g As Double = 0
  14.         Dim b As Double = 0
  15.         Dim pxCount As Long = 0
  16.         'Loop through the image and add the rgb values to their respective variable.
  17.         For x as Integer = 0 To 319
  18.             For y as Integer = 0 To 239
  19.                 pxCount += 1
  20.                 r += bm.GetPixel(x, y).R
  21.                 g += bm.GetPixel(x, y).G
  22.                 b += bm.GetPixel(x, y).B
  23.             Next
  24.         Next
  25.         'The current NewR, NewG and NewB values comes from the PREVIOUS image, so those values goes into the "old" variables instead.
  26.         OldR = NewR
  27.         OldG = NewG
  28.         OldB = NewB
  29.         'And set the "New" variables with the current images R, G and B values divided by the number of pixels in the image.
  30.         NewR = r / pxCount
  31.         NewG = g / pxCount
  32.         NewB = b / pxCount
  33.         'Exit the sub if OldR is -1(That means that there was no previous image)
  34.         If OldR = -1 Then
  35.             Exit Sub
  36.         End If
  37.         'Here comes the code to compare the old and the new R, G and B values:
  38.         If OldR > NewR Then
  39.             If (OldR - NewR) >= Picky Then
  40.                 ListAdd(file)
  41.                 Exit Sub
  42.             End If
  43.         ElseIf NewR > OldR Then
  44.             If (NewR - OldR) >= Picky Then
  45.                 ListAdd(file)
  46.                 Exit Sub
  47.             End If
  48.         End If
  49.  
  50.         If OldG > NewG Then
  51.             If (OldG - NewG) >= Picky Then
  52.                 ListAdd(file)
  53.                 Exit Sub
  54.             End If
  55.         ElseIf NewG > OldG Then
  56.             If (NewG - OldG) >= Picky Then
  57.                 ListAdd(file)
  58.                 Exit Sub
  59.             End If
  60.         End If
  61.  
  62.         If OldB > NewB Then
  63.             If (OldB - NewB) >= Picky Then
  64.                 ListAdd(file)
  65.                 Exit Sub
  66.             End If
  67.         ElseIf NewB > OldB Then
  68.             If (NewB - OldB) >= Picky Then
  69.                 ListAdd(file)
  70.                 Exit Sub
  71.             End If
  72.         End If
  73.         'Dispose the bitmap.
  74.         bm.Dispose()
  75.     End Sub

What im doing if it detects any changes is just to call the ListAdd sub, but you can ofcourse change it to whatever you like. And oh, almost forgot..the "Picky" (hehe) variable is a value that the user sets in settings to change how sensitive it should be. (A value from 1 to 24, where 4 is default, 1 is very sensitive and 25 is very unsensitive)..
Im almost embarrased to show this old code...but if its to any help to you then its good.