В «GIMP: изменение размера изображения с соблюдением правил RIS» был рассмотрен рецепт масштабирования изображений с устранением «дефекта» (размытия смешением цветов). Но в основном дело приходится иметь с изображениями, полученными из сети. То есть изображения получаем «как есть». Они могут быть многократно масштабированы каким то образом и без соблюдения каких то правил.
Можно ли использовать ту же концепцию, что заложена в RIS, для постфильтрации изображения?
Попробуем. Попытаемся угадать метод интерполяции и масштабный фактор, применённый к изображению. «Угадав» эти характеристики, можно провести обратное масштабирование, после отмасштабировать к размеру исходного слоя и использовать наложения «GIMP: реверс фильтров» для обращения «дефекта».
А как «угадать» то характеристики?
Угадывать метод интерполяции особой нужды нет. Для изображений в сети вероятность кубической интерполяции близка к единице.
Для угадывания масштабного фактора могла бы помочь утилита resdet. Но её сборок под Windows я не видел, а альтернатив не знаю. Возможно существуют онлайн сервисы для определения/оценки исходных размеров масштабированных изображений.
Реализация?
Чтобы не производить муторные однотипные операции к скрипту «resize‑ris.scm» был добавлен скрипт «ris‑undefect.scm» в последнем релизе «gimp‑plugin‑resize‑ris 0.20 250 518». После копирования данного файла в папку со скриптами GIMP, в меню «Изображения» → «Преобразования» рядом с пунктом «Resize RIS» появится пункт «RIS undefect».
Для тестирования будем традиционно использовать изображение «Лена».