2012-03-12 2 views
0

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

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

+0

Вопрос неясен - в какой части вы не знаете, как проектировать/внедрять? –

+0

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

ответ

1

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

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

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

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

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

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

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

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

+0

Пирамида, где каждый уровень равен 1/2x, предшествующий уровень будет меньше 1,5x от размера самого высокого разрешения. Нет необходимости рассматривать запись в файлы. –

+0

Зависит от количества заголовков и максимального разрешения каждого из них. Так как заданные упомянутые геотифы, это может быть до огромного объема памяти. –

+0

Да, самое высокое разрешение может быть очень большим, но весь остаток пирамиды будет составлять от 1/4 до 1/2 этого размера. Я думаю, что мой предыдущий комментарий был не очень ясен. –

Смежные вопросы