Сравните изображения, чтобы найти различия в C#

В этом примере вы можете сравнивать изображения, чтобы убедиться, что они одинаковые. Когда вы выбираете два изображения для сравнения и нажмите кнопку Go, программа выполняет следующий код для сравнения изображений и просмотра, с какими пикселями они отличаются.

private void btnGo_Click(object sender, EventArgs e)
{
    this.Cursor = Cursors.WaitCursor;
    Application.DoEvents();

    // Загружаем изображения.
    Bitmap bm1 = (Bitmap)picImage1.Image;
    Bitmap bm2 = (Bitmap)picImage2.Image;

    // Делаем разное изображение.
    int wid = Math.Min(bm1.Width, bm2.Width);
    int hgt = Math.Min(bm1.Height, bm2.Height);
    Bitmap bm3 = new Bitmap(wid, hgt);

    // Создаем разностное изображение.
    bool are_identical = true;
    Color eq_color = Color.White;
    Color ne_color = Color.Red;
    for (int x = 0; x < wid; x++)
    {
        for (int y = 0; y < hgt; y++)
        {
            if (bm1.GetPixel(x, y).Equals(bm2.GetPixel(x, y)))
                bm3.SetPixel(x, y, eq_color);
            else
            {
                bm3.SetPixel(x, y, ne_color);
                are_identical = false;
            }
        }
    }

    // Отображение результата.
    picResult.Image = bm3;

    this.Cursor = Cursors.Default;
    if ((bm1.Width != bm2.Width) || (bm1.Height != bm2.Height)) are_identical = false;
    if (are_identical)
        lblResult.Text = "The images are identical";
    else
        lblResult.Text = "The images are different";
}

Код загружает два файла изображений в Bitmap s. Он находит меньшую ширину и высоту Bitmap s 'и создает новый Bitmap этого размера.

Затем программа перемещается по пикселям в меньшей области, сравнивая пиксели изображений. Если два соответствующих пикселя равны, программа окрашивает белый пиксель результата. Если два пикселя отличаются друг от друга, программа делает красный пиксель результата. Когда он проверяет все пиксели, программа отображает результат.

Источник: http://csharphelper.com/blog/2015/07/compare-images-to-find-differences-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector