Максим
Зарегистрирован: 12 лет и 7 месяцев
Отзывы + 9 / - 0

Заказ закрыт
Реализация алгоритма сравнения изображений(C#/С++)

Бюджет: по договоренности
Заказчик выбрал исполнителя:
Юрий Леонов  
Доброго времени суток!

Необходимо реализовать алгоритм сравнения изображений – механизм должен сравнивать два изображения средствами С# или в виде подключаемой библиотеки с набором требований. В случае если на рисунке, который сравниваю, найдены изменения, возвращаю True, если изменений не найдено False:
Требования:
Быстрое сравнение больших изображений
Алгоритм:
Делим изображение на регионы 8х8. Для разрешения 1600х1200 получаем 200 х 150=30 000 регионов. Адресуем их двухбайтным числом.
В зависимости от номера кадра (K) обработка различается (порядок размеров такой 8, 4, 8, 2, 8, 4, 8, 1, …)
1. Если K % 2 == 0 (номер кадра четный)
a. Выбираем случайный пиксель в регионе
b. Получаем цвет выбранного пикселя из нового кадра
c. Получаем цвет выбранного пикселя из переданного кадра
d. Если цвет совпадает – считаем что регионы совпадают, переходим к следующему
e. Если цвет не совпадает – передаем регион пользователю (2 байта – номер региона, 192 байта – 64 пикселя по 3 байта на пиксель)
2. Если (K – 1) % 4 == 0 (кадры номер 1, 5, 9, 13 и т. д.)
a. Выбираем 4 случайных пикселя (по одному в четырех регионах 4х4) и для каждого выполняем шаги
b. Получаем цвет выбранного пикселя из нового кадра
c. Получаем цвет выбранного пикселя из переданного кадра
d. Если цвет не совпадает – считаем что регионы различаются – передаем регион пользователю
e. Если цвет совпадает – переходим к следующему пикселю. Если все 4 пикселя совпадают – переходим к следующему региону
3. Если (K – 3) % 8 ==0 (кадры номер 3, 11, 19 и т.д.)
a. Выбираем 16 случайных пикселей (по одному в шестнадцати регионах 2х2) и для каждого выполняем шаги
b. Получаем цвет выбранного пикселя из нового кадра
c. Получаем цвет выбранного пикселя из переданного кадра
d. Если цвет не совпадает – считаем что регионы различаются – передаем регион пользователю
e. Если цвет совпадает – переходим к следующему пикселю. Если все 16 пикселей совпадают – переходим к следующему региону
4. Если (K – 7) % 8 == 0 (кадры номер 7, 15, 23 и т.д.)
a. Перебираем все 64 символа региона и выполняем шаги
b. Получаем цвет выбранного пикселя из нового кадра
c. Получаем цвет выбранного пикселя из переданного кадра
d. Если цвет не совпадает – считаем что регионы различаются – передаем регион пользователю
e. Если цвет совпадает – переходим к следующему пикселю. Если все 64 пикселя совпадают – переходим к следующему региону
Опубликован 11.06.2013 в 19:41
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.