Создание хэша изображения - C#
Формулировка задачи:
Добрый день!На хабре есть статья о создании хэша изображения: https://habrahabr.ru/post/120562/. И есть реализация данного алгоритма на C++, который я не знаю к сожалению: http://robocraft.ru/blog/computervision/537.html. Помогите пожалуйста реализовать данный алгоритм в C#
Решение задачи: «Создание хэша изображения»
textual
Листинг программы
byte[] GetHashImage(Image img) { // 1. изменяем размер изображения int width = 8; int height = 8; var newImg = new Bitmap(img, new Size(width, height)); // 2. получаем градиент серого var bytes = new List<byte>(); for (int i = 0; i < newImg.Width; i++) for (int j = 0; j < newImg.Height; j++) { var pixel = newImg.GetPixel(i, j); bytes.Add((byte)((pixel.R + pixel.G + pixel.B) / 3)); } // 3. на основе порогового значения получаем массив бит var avarage = bytes.Average(b => b); var bits = new BitArray(bytes.Select(b => b > avarage).ToArray()); // 4. биты переводим в байты var result = new byte[(int)Math.Round((double)bits.Count / 8)]; bits.CopyTo(result, 0); return result; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д