Улучшение изображений, хранящихся в виде пирамид

Как расширение (или любая операция, изменяющая изображение) применяется к изображению, которое хранится в форме пирамид, применяется ли оно сначала к определенному слою пирамиды (текущий уровень масштабирования), а затем повторно применяется к другому слою, если пользователь изменяет масштаб увеличение или уменьшение, ИЛИ применяется все сразу ко всей пирамиде, ИЛИ Есть ли какой-то алгоритм, с помощью которого можно эффективно распространить эффект улучшения на другие слои пирамиды.

Я хочу знать, каков наилучший способ сделать это.

1 ответ

Решение

У вас есть два хороших варианта:

  1. Примените действие к самому высокому разрешению и воссоздайте более низкие разрешения по мере необходимости (текущий уровень и другие уровни, если они выбраны)

  2. Сохранять стек действий, применять только к текущему уровню, при переключении уровня применять весь стек к этому уровню.

В обоих этих вариантах все нетоковые уровни * могут быть сохранены в файлах и загружены в память, только если этот уровень выбран. (* За исключением самого высокого разрешения в варианте 1, которое должно храниться в памяти.)

Вариант 1 является более точным - некоторые действия могут быть менее точными, если они применяются непосредственно к более низким разрешениям.

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

Для варианта 1 вам понадобится алгоритм уменьшения (изменения размера) для расчета текущего уровня с самого высокого разрешения.

Для варианта 2 вам понадобится стек действий (+ параметры для каждого действия).

Другие вопросы по тегам