Jak porównać, jeśli 2 obrazy są takie same przy użyciu bajtów skrótu?

private void button1_Click(object sender, EventArgs e)
{
    Bitmap im1 = new Bitmap(@"C:\Users\user\Downloads\CaptchaCollection\1.png");
    Bitmap im2 = new Bitmap(@"C:\Users\user\Downloads\CaptchaCollection\2.png");

    if (HashImage(im1) == HashImage(im2))
    {
        MessageBox.Show("Same Image");
    }

    else
    {
        MessageBox.Show("Different Image");
    }
}

Kliknięcie przycisku spowoduje porównanie tych 2 zdjęć.

Oto kod używany do mieszania obrazu.

public byte[] HashImage(Bitmap image)
{
    var sha256 = SHA256.Create();

    var rect = new Rectangle(0, 0, image.Width, image.Height);
    var data = image.LockBits(rect, ImageLockMode.ReadOnly, image.PixelFormat);

    var dataPtr = data.Scan0;

    var totalBytes = (int)Math.Abs(data.Stride) * data.Height;
    var rawData = new byte[totalBytes];
    System.Runtime.InteropServices.Marshal.Copy(dataPtr, rawData, 0, totalBytes);

    image.UnlockBits(data);

    return sha256.ComputeHash(rawData);
}

Więc jak korzystać zHashImage() metoda porównania obu tych obrazów, jeśli są takie same wizualnie, czy nie?

Próbowałem porównać 2 obrazy, które są wyraźnie takie same, ale nie działają, aby porównać poprawnie. Zamiast tego mam wrażenie, że to inny obraz.

Próbowałem nawet tego, ale to też nie działa.

if (HashImage(im1).Equals(HashImage(im2)))

AKTUALIZACJA: Próbowałem tego, ale to też nie działa.

if (ReferenceEquals(HashImage(im1),HashImage(im2)))

questionAnswers(1)

yourAnswerToTheQuestion