Проблема подавления шума на изображениях и видео и различные подходы к ее решению. Описание Image Processing Toolbox

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

ISO6400, было\стало.

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

Один из серии. Как видим, даже в сильно уменьшенном размере количество шума ужасает.

Для усреднения загружаем это все в документ фотошопа в виде слоев.
Если съемка велась с рук, слои нужно выровнять с помощью photomerge, предварительно ( здесь), или с помощью команды Edit - Auto-Align Layers (Редактирование - Автоматически выровнять слои).
Далее, для усреднения, задаем прозрачность слоев: для нижнего 100%, следующего 50%, 33%, 25%, ...

Куда удобнее использовать режим стекинга, особенно при сложении большого количества фотографий.

Открываем фотошоп, и отдаем команду File - Scripts - Load Files into Stack (Файл - Сценарии - Загрузить файлы в стек)
Отмечаем галкой пункт Create Smart Object after Loading Layers (Создать смарт объект при загрузке слоев), опционально - Attempt to Automatically Align Source Images (Попытаться автоматически выровнять исходные изображения).
Таким образом мы получили единую группу или стек. Колдовать с прозрачностью не потребуется, т.к. для проведения вычислений над стеком есть отдельное меню Layer - Smart Objects - Stack Mode (Слои - Смарт объект - Режим стека). При обработке фото и видео имеют значение только два режима - mean (усреднение или среднее арифметическое) и median (медиана), остальные используются при обработке медицинских, научных и криминалистических и снимков и т.д. Если режим стека меняется, вычисления производятся занова (с оригиналом, а не предудыщим результатом).
Рассмотрим 100% кропы с разных участков и сравним результат.

Слева направо: оригинал, медиана, усреднение. Использовался десяток кадров.




Как это работает? В случае режима mean, происходит поканальное сложение яркостей каждого пикселя и результат делится на количество фото. Например: (3+2+1+2+9+3+1)/7=3
В режиме median выбирается среднее сначение из ряда 1,1,2,2 ,3,3,9 - среднее 2. Т.е. сильные единичные перепады не оказывают влияния.
С практической точки зрения это означает что движущиеся объекты оставят след только если они присутствуют на нескольких кадрах серии. Однако mean поборет шумы лучше.

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

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

Где не поможет?
- при съемке движущихся объектов (хотя возможно избирательное удаление шума в неподвижных областях).
- не избавит от постоянной составляющей шума

Изобретение относится к способам удаления шума в изображении и может быть использовано для улучшения качества изображения. Техническим результатом является упрощение удаления шума и повышение качества получаемого цифрового изображения, это достигается тем, что за счет преобразования яркости пикселей изображения с шумом путем решения уравнения диффузии недивергентной формы обеспечивается одновременное подавление шума и сохранение кромок изображения. 2 з.п. ф-лы, 1 ил.

Область техники, к которой относится изобретение

Изобретение относится к способам удаления шума в изображении и может быть использовано для улучшения качества изображения.

Предшествующий уровень техники

К настоящему времени известны различные способы удаления шума в изображении.

Например, в патенте US 6463182, Canon Kabushiki Kaisha, 08.10.2002, G06K 9/40 описывается устройство и способ удаления шума в изображении, в которых данные изображения с искажениями разделяют на блоки и корректируют шум в зависимости от положения каждого пикселя изображения в блоке.

В патенте US 5933540, General Electric Company, 03.08.1999, G06K 9/00 приводится система и способ уменьшения шума и улучшения качества кромок цифрового изображения путем определения фонового значения шума на всем изображении и его удаления с помощью системы фильтров.

Известен способ удаления случайных шумов (патент US 5225915, Xerox Corporation, 06.07.1993, H04N 1/40) за счет применения к данным изображения в качестве фильтра модифицированной функции Лапласа, имеющей максимум на частоте, оптимальной для удаления шума.

Наиболее близким к заявленному изобретению является способ уменьшения шума на изображении, предполагающий использование дифференциальных вычислений (Later, Catte, Morel et al.). В данном способе изображение с шумом преобразовывают параболическим уравнением, в результате чего удаляют шум на изображении, получая изображение без шума. Данный способ выбран в качестве прототипа заявленного изобретения. Недостатком приведенных выше аналогов и прототипа является нестабильность решений математического выражения, описывающего шум, и размывание изображения в результате его применения. Отличие заключается в использовании другого (более простого) уравнения, которое не имеет указанных недостатков и проще в решении.

Сущность изобретения

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

Поставленная задача решена путем создания способа удаления шума на изображении, включающего в себя этапы, на которых:

Получают от внешнего устройства многомерное изображение с кромками, состоящее из пикселей и имеющее шум;

Определяют в модуле координат яркость пикселей для координат всех пикселей многомерного изображения, где n - количество измерений;

Записывают массив данных яркости пикселей многомерного изображения в память;

Производят в фильтре для всех пикселей многомерного изображения следующие операции:

Задают зависимость яркости пикселей изображения двумерным уравнением диффузии недивергентной формы вида

, (1)

где - релаксационный параметр, - функция от координат пикселей многомерного пространства и релаксационного параметра, k - коэффициент диффузии, , где - параметр сглаживания итогового изображения около кромок, и чем больше значение этого параметра m , тем слабее сглаживание итогового изображения без шума около кромок, - параметр сглаживания итогового изображения без шума в областях, где нет кромок, чем больше значение этого параметра, тем слабее сглаживание итогового изображения без шума в областях, где нет кромок;

Численно решают n-мерное уравнение диффузии (1) с начальным условием , находя решение при значении релаксационного параметра , которое определяет общую степень сглаживания итогового изображения без шума, чем больше эта величина, тем сильнее сглаживается изображение, при этом получают совокупность координат пикселей итогового изображения без шума;

Записывают яркость пикселей итогового изображения без шума в память;

Выводят итоговое изображения без шума на устройство отображения.

Для функционирования способа существенно, чтобы внешнее устройство было выполнено в виде камеры стереозрения, сканера, цифрового фотоаппарата или других аналогичных устройств.

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

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

Для лучшего понимания настоящего изобретения далее приводится его подробное описание с соответствующими чертежами.

Блок-схема системы для осуществления заявленного способа согласно изобретению изображена на чертеже.

Система для осуществления заявленного способа включает в себя внешнее устройство 1, вычислительное устройство 2 и устройство отображения 3, причем вычислительное устройство 2 содержит память 4, модуль 5 определения яркости и фильтр 6.

Рассмотрим более подробно функционирование согласно заявленному способу.

Сначала получают от внешнего устройства 1 многомерное изображение с кромками, имеющее шум. Определяют в модуле 5 яркость пикселей многомерного изображения, где и n - количество измерений. Записывают массив данных яркости пикселей многомерного изображения в память 4.

Производят в фильтре 6 для всех пикселей многомерного изображения следующие операции:

задают зависимость яркости пикселей многомерного изображения уравнением диффузии вида

,

где - неизвестная функция, t - релаксационный параметр (его значение будет описано ниже), x - координаты пикселя изображения в n -мерном пространстве. Для двумерных изображений размерность пространства (в этом случае можно считать ), для специальных видов изображений размерность может быть больше. В уравнение также входят , В рассматриваемом решении предлагается использовать коэффициент диффузии в виде где . Значение параметра (как и значение m ) влияет на степень сглаживания изображения.

Основной способ использования уравнения диффузии заключается в том, что исходное изображение рассматривается как начальные данные для указанного уравнения при ,

Рассматривая эволюцию решения при увеличении значения параметра t , получают различные сглаженные версии исходного изображения. Таким образом, еще одним неявным параметром фильтра 6 является конечное значение релаксационного параметра, T . Результат работы фильтра 6 есть

Заметим, что поскольку коэффициент диффузии есть нелинейная функция, результат работы фильтра 6 есть нелинейное преобразование исходного изображения. Это делает процесс фильтрации зависимым от изображения. Различные изображения сглаживаются по-разному. Это несколько затрудняет универсальную оценку качества сглаживания.

Для решения указанного выше диффузионного уравнения используют коэффициент диффузии вида Параметр связан с масштабом представления яркости изображения и влияет на характер сглаживания изображения в областях, где нет кромок. При малых значениях параметра сглаживание будет более сильным, чем при больших. В качестве значения этого параметра обычно берут . Параметр m влияет на сглаживание изображения в окрестностях кромок, чем больше значение этого параметра, тем слабее будет сглаживание около кромок. Обычно достаточно использовать значение или . Параметр влияет на общее сглаживание изображения. При увеличении этого параметра увеличивается общее сглаживание исходного изображения. В качестве граничных условий на краях изображения наиболее удобно брать условие .

Исходное изображение дискретизуют на многомерной сетке, получая матрицу яркости изображения .

Численно решают n-мерное уравнение диффузии. Для решения данного уравнения применяют неявную разностную схему с расщеплением с использованием метода дробных шагов. Решение уравнения при получают при помощи решения описываемого ниже разностного уравнения. Один полный цикл решения многомерного разностного уравнения соответствует вычислению решения для значения исходя из значений решения для значения релаксационного параметра . Численная схема допускает грубую оценку решения при любом значении τ за один шаг, для более точных расчетов рекомендуется делать несколько шагов с меньшими значениями τ.

Входными данными для одного шага расчета является матрица яркости изображения при значении параметра . На выходе получим значения яркости при

В качестве предварительного шага вычислим матрицу коэффициентов диффузии Как альтернативный вариант возможно прямое вычисление коэффициента по данной формуле в месте непосредственного использования.

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

Один шаг по параметру t для исходного многомерного уравнения предлагается заменить на n последовательных элементарных шагов по отдельным измерениям, где на каждом элементарном шаге решают одномерное уравнение вида

В качестве начальных значений для самого первого подшага берут исходное значение яркости при : Результат вычисления после n подшагов есть искомое значение яркости при

Элементарные шаги по параметру t выбирают равными, например, где - пространственная частота дискретизации для сетки (можно также ввести этот параметр и для вычисления коэффициента диффузии). Значение τ можно задать выражением

Покажем, как решаются полученные одномерные задачи. Получаемые элементарные задачи являются одномерными, т.к. все индексы переменных, кроме являются фиксированными. Поэтому при рассмотрении одной такой задачи отбрасываем постоянные индексы.

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

используют граничное условие слева, при этом где

подставляют последовательно получаемые уравнения в исходную систему

где

После вычисления значений на шаге, используют правое граничное условие и вычисляют Затем выполняют обратную подстановку и по ранее вычисленным значениям получают последовательно и, наконец

Всем доброго времени суток! Продолжаем потихоньку наполнять рубрику ! В этой статье я хочу рассказать и показать вам, один из самых быстрых и лёгких способов как убрать шум в Фотошоп . Чтобы более глубоко и детально раскрыть эту тему, я подобрал специально такое изображение, на котором покажу как убирать с изображения яркостный шум и цветовой шум.

Вообще шум целая, неприятная проблема цифровых фотографий, сделанных в темное время суток и сейчас мы с вами эту проблему за решаем. Для начала давайте откроем наше изображение с шумом и оценим ситуацию в целом.

Заходим в меню Файл/Открыть или воспользуемся горячими клавишами CTRL+O . Кстати, ещё можно открыть изображение с помощью функции «Открыть как… » (ALT+SHIFT+CTRL+O ), находим и выбираем наше изображение с шумом, затем справа от поля «Имя файла», выбираем открыть как тип файла «Camera Raw» и наше изображение сразу же открывается в фильтре Camera Raw.

Я открываю свое изображение первым, обычным способом, чтобы далее показать как зайти в специальный фильтр «Camera Raw», выбрать нужную вкладку и провести операции по устранению шума. Теперь давайте оценим моё изображение, в котором присутствует цветовой и яркостный шум. Вот оно:

Изображение с цветовым и яркостным шумом

Шума в этом изображение больше чем достаточно. Вы наверное уже начали сомневаться, что у нас что-то получится.. Конечно же, полностью весь шум убрать не получится, но сделать изображение менее шумным легко. Переходим от теории к практике!

Шаг №1

Итак, я открыл своё изображение в Фотошоп, теперь мне нужно зайти в специальный фильтр — «фильтр Camera Raw». Для этого я захожу в верхнее меню Фильтр/Фильтр Camera Raw , либо воспользуюсь горячими клавишами (SHIFT+CTRL+A ).

Заходим в меню Фильтр/Фильтр Camera Raw…

Шаг №2

Перед нами открывается окошко фильтра Adobe Camera Raw. Ставим галочку наверху в пункте «Контрольный просмотр», чтобы сразу видеть изменения изображения во время работы в фильтре. Далее выбираем вкладку «Детализация», у меня эта третья иконка слева. В нижнем левом углу можно менять масштаб изображения, скоро это нам понадобится.

Окно фильтра Adobe Camera Raw

Шаг №3

Находим ползунок «Цветность» и потихоньку передвигаем его вправо, до тех пор, пока не исчезнут цветовые точки. Не старайтесь на этом этапе убрать яркостный шум, пока что мы убираем только цветовой шум (цветовые точки). Как только цветовые точки исчезнут, сразу перестаём двигать ползунок.

Увеличили масштаб изображение до 300%

Вот что у нас получилось на данном шаге после не сложных манипуляций ползунком «Цветность». Обратите внимание, что цветные точки (цветовой шум) полностью исчезли с изображения. Теперь осталось убрать яркостный шум.

Цветовой шум в виде цветовых точек полностью убран

Шаг №4

Теперь давайте приступим к устранению яркостного шума. Для того, чтобы это сделать находим ползунок «Светимость» и медленно двигаем его в правую сторону, параллельно наблюдая за нашим изображением. Когда будет достаточно, определяем в каждом случае индивидуально, но значение «Светимости» при любом раскладе всегда выше значения «Цветности». Вот что получилось:

Вот такую картинку мы получили, шум практически полностью исчез

Шаг №5

В результате всех наших манипуляций, резкость изображения уменьшилась. Для того, чтобы увеличить резкость, необходимо подвигать вправо ползунки «Эффект» или «Сведения о яркости». Можно подвигать два этих ползунка или любой один из них.

Но имейте ввиду, двигать ползунки нужно очень осторожно, потому что получается обратный эффект, чем больше вы добавляете резкости, тем больше появляется шум. В конце не забудьте нажать кнопку «Ок» для того чтобы сохранить все изменения.

Осторожно добавляем резкость

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

Вот что получилось после обработки по удалению шума

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

На этом сегодня всё, спасибо за внимание, увидимся в следующих уроках!

Регулировка значений интенсивностей

Существует возможность установки значений интенсивностей на изображении с помощью функции imadjust, где указан диапазон интенсивностей результирующего изображения.

Рассмотрим пример увеличения контраста изображения с низким уровнем контрастности путем перераспределения значений данных на весь диапазон .

I = imread("pout.tif"); J = imadjust(I);

Исходное изображение

Imshow(J) figure, imhist(J,64)

На рисунке отображено преобразованное изображение и его гистограмма. Отметим, что в результате усиление контраста изображения, гистограмма заполняет весь диапазон.


Преобразованное изображение и его гистограмма

Описание регулировки границ диапазона

Существует возможность описания диапазона исходных и результирующих значений с использованием функции imadjust. Для этого в функции imadjust в качестве аргумента указываются диапазоны в виде двух векторов. Первый вектор содержит наименьшее и наибольшее значение интенсивностей исходного изображения, которые будут отображены тем диапазоном яркостей, который указан во втором векторе.

Примечание.
Отметим, что значения интенсивностей должны находится в диапазоне между 0 и 1, независимо от формата изображения. Если изображение представлено в формате uint8, диапазон значений содержит 255 градаций, а для изображения в формате - 65535 градаций.

Например, уменьшение контраста изображения достигается за счет уменьшения диапазона интенсивностей. На изображении внизу, пальто человека слишком темное и на нем не видно деталей. Но это можно исправить с помощью функции imadjust, отобразив диапазон исходного изображения в формате uint8 в диапазон преобразованного изображения. Это преобразование значительно расширит динамический диапазон, и улучшит визуальное восприятие темных областей изображения. Отметим также, что все значения интенсивностей выше 51, будут отображаться как 255, т.е. белым цветом.

I = imread("cameraman.tif"); J = imadjust(I,,); imshow(I) figure, imshow(J)


Изображение после преобразования динамического диапазона

Установка ограничений автоматической коррекции

Обычно при использовании функции imadjust необходимо выполнить два основных действия:

  1. Просмотреть гистограмму и определить границы значений интенсивностей.
  2. Описать эти границы для дальнейшего использования в функции imadjust.

Более простой путь для описания этих границ заключается в использовании функции stretchlim.

Эта функция вычисляет гистограмму изображения и определяет границы корректировки диапазона автоматически. Функция stretchlim возвращает эти значения в виде вектора, который используется как аргумент в функции imadjust. Например,

I = imread("rice.png"); J = imadjust(I,stretchlim(I),);

По умолчанию, функция stretchlim использует значения интенсивностей, которые представляют нижнюю 1% (0.01) и верхнюю 1% (0.99) часть диапазона в качестве границ регулировки.

Гамма коррекция

Функция imadjust отображает наименьшие значения еще меньшими, а наибольшие - еще большими. По умолчанию промежуточные значения отображаются линейно. Например, значения интенсивностей, которые находятся посредине диапазона интенсивностей исходного изображения соответствуют тем значениям интенсивностей, которые находятся посредине диапазона преобразованного изображения.

В функции imadjust можно указывать дополнительный аргумент, который описывает степень гамма коррекции. В зависимости от значения гаммы, зависимость между значениями исходного и преобразованного изображения может быть нелинейной. Поэтому значения интенсивностей, которые находятся посредине диапазона интенсивностей исходного изображения не соответствуют тем значениям интенсивностей, которые находятся посредине диапазона преобразованного изображения.

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

Сказанное выше продемонстрировано на рисунке. Три кривых преобразования показывают отображение значений интенсивностей при различных значениях гамма - меньше, равно и больше единицы. (На изображении x-координата представляет значения интенсивностей исходного изображения, а y-координата - значения интенсивностей результирующего изображения.)


Отображение трех различных установок гамма-коррекции

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

Imread("forest.tif") I = ind2gray(X,map); J = imadjust(I,,,0.5); imshow(I) figure, imshow(J)


Изображение до и после применения гамма коррекции

Контрастно-ограниченное адаптивное выравнивание гистограммы

В качестве альтернативы можно использовать функцию histeq, которая выполняет контрастно-ограниченную адаптивную гистограммную эквализацию с использование функции adapthisteq. Функция работает с целым изображением, а функция adapthisteq может работать с небольшими областями изображения. Контраст каждой части изображения повышается, что связано с изменением формы гистограммы. После выполнения выравнивания (эквализации), функция adapthisteq объединяет края локальных областей с применением билинейной интерполяции, исключая искусственно созданные границы.

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

Для иллюстрации рассмотрим использование функции adapthisteq при коррекции контраста на изображении. Исходное изображение имеет низкий контраст, большинство значений интенсивностей сосредоточено в середине диапазона. Функция adapthisteq выполняет равномерное распределение значений интенсивностей вдоль всего диапазона.

I = imread("pout.tif"); J = adapthisteq(I); imshow(I) figure, imshow(J)


Изображение после обработки методом контрастно-ограниченного адаптивного выравнивания гистограммы (и его гистограмма)

Декорреляционное растяжение

Декорреляционное растяжение улучшает соотношение цветов на изображении с учетом корреляционных зависимостей. При улучшении изображений очень важно найти границу улучшения, чтобы чрезмерное улучшение не приводило к возникновению несуществующих деталей. Поэтому целесообразно применять метод декорреляционного растяжения, который реализовывает функция decorrstretch.

В большинстве случаев количество цветов в связке NBANDS на изображении равно трем. Функция decorrelation может применятся независимо от количества цветов в связке.

При преобразовании значений исходных цветов изображения диапазон отображения, в большинстве случаев, увеличивается. Интенсивности цветов каждого пикселя преобразуются в собственное цветовое пространство с ковариационной или корреляционной матрицей с размерностью NBANDSxNBANDS, растягиваются, выравниваются и трансформируются обратно.

Пример декорреляционного растяжения

Применим операции декорреляции и растяжения к некоторым изображениям из библиотеки, которая размещена в директории imdemos системы Matlab. Библиотека включает LANDSAT-изображение небольшой реки в Колорадо. Обработаем это изображение методом декорреляционного растяжения:

  1. Изображение состоит из семи диапазонов, которые должны быть представлены тремя видимыми цветами: A = multibandread("littlecoriver.lan", , ... "uint8=>uint8", 128, "bil", "ieee-le", ... {"Band","Direct",});
  2. Выполняем декорреляционное растяжение: B = decorrstretch(A);
  3. Визуализация результатов: imshow(A); figure; imshow(B)

Сравним два изображения. На исходном изображении сильно преобладает фиолетовый (красно-синий) оттенок, а результирующее изображение имеет более растянутый цветовой диапазон.


Изображение небольшой реки в Колорадо до (слева) и после (справа) декорреляционного растяжения

Покажем разброс цветов разных диапазонов изображения до и после декорреляции и выравнивания:

RA = A(:,:,1); gA = A(:,:,2); bA = A(:,:,3); figure, plot3(rA(:),gA(:),bA(:),"."); grid("on") xlabel("Red (Band 3)"); ylabel("Green (Band 2)"); ... zlabel("Blue (Band 1)") rB = B(:,:,1); gB = B(:,:,2); bB = B(:,:,3); figure, plot3(rB(:),gB(:),bB(:),"."); grid("on") xlabel("Red (Band 3)"); ylabel("Green (Band 2)"); ... zlabel("Blue (Band 1)")


Разброс цветов разных диапазонов изображения до и после декорреляции и выравнивания

Дополнительное линейное растяжение контраста

Сейчас рассмотрим такое же преобразование, но речь будет идти о линейном растяжении контраста, которое применим после декорреляционного растяжения:

Imshow(A); C = decorrstretch(A,"Tol",0.01); figure; imshow(C)

Сравним исходное и преобразованное изображения.


Изображение небольшой реки в Колорадо после декорреляционного растяжения и линейного растяжения контрастов

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

Для получения более детальной информации см. описание функции stretchlim.

Примечание.
Линейное растяжение контраста можно применять как отдельную операцию после выполнения декорреляционного растяжения, используя функции stretchlim и imadjust. Это является одним из альтернативных путей, однако, часто не приводит к хорошим результатам для изображений, которые представлены в формате uint8 и uint16. Такой результат объясняется распределением пикселей в диапазоне (или ). Опции функции decorrstretch позволяют обойти это ограничение.

Удаление шума

Цифровые изображения подвержены воздействию различных типов шумов. Существует несколько основных причин появления шума, которые зависят также от способа формирования изображений. Например:

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

Приложение обеспечивает несколько путей полного или частичного устранения шума на изображениях. Для устранения различных видов шума разработаны различные методы. Среди них

  1. Использование линейной фильтрации;
  2. Использование медианной фильтрации;
  3. Использование адаптивной фильтрации.

Для демонстрации эффекта от работы перечисленных выше методов в приложении существует функция imnoise, которая добавляет на изображение различные типы шума. Рассмотрим примеры использования этой функции.

Использование линейной фильтрации

Линейную фильтрацию можно использовать для удаления шумов определенного типа. Для этого годятся такие фильтры как усредняющий и фильтр Гаусса. Например, усредняющий фильтр используется для удаления зернистости на изображениях. Поскольку значение интенсивности каждого пикселя равно средней интенсивности пикселей окрестности, то это приводит к подавлению зернистости.

Использование медианной фильтрации

Медианная фильтрация похожа на использование усредняющего фильтра, где значение интенсивности каждого пикселя представляет собой усредненное значение интенсивностей пикселей соответствующей окрестности. Во многих случаях использование медианного фильтра при решении задач устранения шума является более эффективным, чем обычное усреднение. Применение медианной фильтрации приводит к меньшим искажениям границ, в сравнении с операцией усреднения. Функция medfilt2 выполняет медианную фильтрацию.

Примечание.
Медианная фильтрация является порядково-статистической фильтрацией и известна еще как ранговая фильтрация. Для более детальной информации см. описание функции ordfilt2.

Рассмотрим пример, в котором сравним использование усредняющего фильтра и функции medfilt2 для удаления шума типа "соль и перец". Влияние этого типа шума заключается в том, что случайно выбранные пиксели стают черными или белыми (т.е. им присваиваются экстремальные значения из существующего диапазона). В обеих случаях размер используемой окрестности равен 3x3.

Использование адаптивной фильтрации

В основе функции wiener2 лежит винеровский фильтр (один из типов линейного фильтра) для адаптивной локальной обработки изображений. Если значение среднеквадратического отклонения интенсивностей пикселей в данной локальной области большое, то wiener2 выполняет небольшое сглаживание. Если же это отклонение небольшое, то область сглаживания больше.

Этот подход часто бывает более эффективным, чем обычная линейная фильтрация. Преимущество адаптивный фильтра еще заключается в том, что он сохраняет края и другие высокочастотные части объектов изображения. Однако, винеровский фильтр требует большего времени для вычислений, чем линейный фильтр.

Функция wiener2 лучше работает с "белым" шумом, например гауссовским. Рассмотрим пример применения функции wiener2 к обработке изображения Сатурна, которое зашумлено гауссовым шумом. Для интерактивной демонстрации фильтрации шума можно использовать nrfiltdemo.

RGB = imread("saturn.png"); I = rgb2gray(RGB); J = imnoise(I,"gaussian",0,0.005); K = wiener2(J,); imshow(J) figure, imshow(K)


Зашумленное изображение (слева) и изображение после фильтрации (справа)

Для демонстрации работы методов устранения шума используются изображения с различными видами зашумленности. Для формирования этих изображений используется функция imnoise. Кстати, изображения, приведенные в этом разделе, сформированы с использованием этой функции.

Может ухудшить степень детальности ваших цифровых или плёночных фотографий, поэтому подавление этого шума может значительно улучшить итоговое изображение или отпечаток. Проблема в том, что большинство методов шумоподавления всегда заодно размывает изображение. Некоторое сглаживание может быть приемлемо для изображений, на которых господствует вода или небо, но листва в пейзажах может пострадать даже от наиболее осторожных попыток подавления шума.

Данная статья сравнивает несколько распространённых методов шумоподавления, а также предлагает альтернативный подход: усреднение нескольких экспозиций с целью подавления шума. Усреднение изображений часто используется в высококлассной астрофотографии, но, вероятно, недоиспользуется в других типах съёмки при малом свете или ночью. Усреднение способно подавить шумы, не разрушив детальность, поскольку оно по сути увеличивает соотношение сигнал-шум (SNR) вашего изображения. Дополнительным выигрышем является то, что усреднение может заодно повысить глубину цветности вашего изображения - за грань возможностей одиночного снимка. Усреднение может также быть особенно полезно для тех, кто хочет сымитировать гладкость ISO 100, если камера позволяет минимум ISO 200 (как, например, большинство цифровых зеркальных камер Nikon).

Концепция

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


Вышеприведенный график отражает флюктуации яркости в верхнем и нижнем изображениях синей и красной линиями, соответственно. Горизонтальная черта отражает среднее значение, которое соответствует идеальному виду изображения с нулевым уровнем шума. Заметьте, что колебания красной и синей линий уникальны и независимы. Если мы усредним значения пикселей в каждой из точек графика, мы получим снижение вариативности яркости, как показано ниже:


Несмотря на то, что результат усреднения двух графиков продолжает колебаться относительно идеального среднего, его максимальное отклонение значительно уменьшилось. Визуально это приводит к тому, что образец выглядит более гладко. Усреднение двух изображений обычно даёт уровень шума, соответствующий половинной чувствительности ISO, так что два изображения, снятые при ISO 400, будут сравнимы с одним, снятым при ISO 200, и так далее. В общем, уровень шума падает на квадратный корень от числа усреднённых изображений, то есть для снижения уровня шума вдвое требуется усреднить 4 изображения.

Сравнение шума и детальности

Следующий пример иллюстрирует эффективность усреднения реальных изображений. Следующий снимок был сделан при ISO 1600 на камеру Canon EOS 300D Digital Rebel и демонстрирует сильную зашумленность.

Истинный размер образцов
Оригинал 2 снимка 4 снимка

Заметьте, как усреднение и уменьшает шум, и проявляет детальность для каждого образца. Для сравнения используем лучшие из доступных программ шумоподавления, например, Neat Image :

Оригинал 2 снимка 4 снимка Neat Image Медианный фильтр

Neat Image лучше всех справилась с подавлением шума на гладком небе, но принесла в жертву детали на ветвях и кирпичной стенке. Для выделения оставшихся деталей и улучшения общего ощущения резкости можно использовать повышение резкости, но оно неспособно восстановить утраченную информацию. Медианный фильтр является примитивным методом, который присутствует в большинстве версий Фотошопа. Он подсчитывает значение в каждом пикселе как медиану от всех смежных пикселей. Он эффективен в подавлении очень малого шума, но оставляет нетронутыми более заметные отклонения и при этом исключает попиксельную детальность. В целом, Neat Image является лучшим выбором для ситуаций, когда усреднение снимков невозможно (используется съёмка с рук). В идеале разумно использовать оба подхода: сперва усреднить изображения для максимально возможного повышения SNR, а затем использовать Neat Image, чтобы подавить оставшийся шум:

Оригинал Усреднение: 4 снимка Neat Image Neat Image + усреднение

В программе Neat Image Pro Plus 4.5 использовались
стандартные параметры шумоподавления и «автоподстройка»

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

Усреднение изображений с использованием слоёв

Adobe Photoshop позволяет относительно быстро усреднить изображения, используя слои. Идея в том, чтобы положить каждое из изображений в отдельный слой и наложить их так, чтобы каждое изображение вносило равный вклад. Если по какой-то причине один из слоёв получает больший вес, чем прочие, эффективность усреднения понизится.

Следует сперва загрузить все усредняемые изображения в Photoshop и затем расположить их в слоях одно над другим в одном проекте. GIMP позволяет открывать изображения непосредственно как слои. После того как все усредняемые изображения оказались в слоях одного проекта, можно приступать собственно к усреднению.

При усреднении следует помнить, что плотность каждого слоя определяет, насколько будет виден слой, лежащий под ним, и то же самое справедливо для всех последующих слоёв. Это означает, что для корректного усреднения четырёх изображений недостаточно будет поставить плотность каждого слоя равной 25%. Вместо этого для нижнего (фонового) слоя нужно задать плотность 100%, для следующего над ним слоя 50%, для слоя над ним 33% и, наконец, для самого верхнего слоя 25%. Это проиллюстрировано ниже:

Когда нужно применять усреднение изображения вместо того, чтобы просто сделать более длинную выдержку при меньшей чувствительности ISO? В следующем наборе ситуаций это может оказаться полезным:

  • Чтобы исключить избыточный структурный шум на длинных выдержках
  • Для камер, у которых нет режима «bulb», предельная длина выдержки обычно составляет 15-30 секунд. В таких случаях два снимка при ISO 800 и 30 секундах дадут грубый эквивалент (как по яркости, так и по уровню шума) одной выдержки 60 секунд при ISO 400. Возможны многие другие комбинации...
  • Для ситуаций, в которых невозможно гарантировать непрерывные выдержки требуемой длины. Например, снимок делается в публичном месте, и требуется малый шум, однако длинная выдержка невозможна, поскольку кадр часто пересекают пешеходы. Можно сделать несколько коротких снимков между их появлением.
  • Чтобы избирательно заморозить движение в малодетальных, быстродвижущихся частях, сохранив при этом малое количество шума в высокодетальных, неподвижных областях. Например, в звёздную ночь с листвой на переднем плане.
  • Чтобы уменьшить шум в тенях (даже на снимках с низким ISO), из которых вы собираетесь впоследствии извлечь детали посредством пост-обработки.
Поделиться: