Я реализовал VNG. Особенности реализации: для ускорения работы предвычисляются в инициализации матрицы градиентов. Для упрощения работы с индексами все операции проводятся на картинке с паддингом.
Проанализировать полученное изображение и сделать вывод, во сколько раз снижается разрешение восстановленного изображения по сравнению с оригиналом.
В полученном изображении наблюдается нарушение цветовой гаммы (не удается передать красный, получается лишь розовый). Края из серого оттенка стали зеленоватыми (так же зеленый оттенок много где стал доминировать). К тому же картинка получилась сетчатой по каким-то причинам. Однако основные детали переданы довольно четко. Переход цветов и очертание фигур, штрихи и разделения на секции в точности совпадают с исходным. Текущее изображение является более бледным, зеленоватым и сетчатым аналого оригинала.
Полученный результат
Среднее время работы, с | Погрешность времени работы, с | Размер картинки, пиксель | Скорость,сек/мегапиксель | Погреность скорости, сек/мегапиксель |
---|---|---|---|---|
Скорость аналогичного алгоритма на c++ значительно превосходит реализацию на питоне. Однако такая скорость тоже хороша для довольно объемной картинки.