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

Подавление шумов на изображениях

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

Шаг 1: Считывание исходного изображения.

Шаг 2: Формирование зашумленных изображений.

Шаг 3: Использование медианного фильтра для устранения импульсного шума.

Шаг 4: Подавление шумовой составляющей с использованием операции сглаживания.

Шаг 5: Пороговый метод подавления шумов.

Шаг 6: Низкочастотная фильтрация с использованием шумоподавляющих масок.

Шаг 1: Считывание исходного изображения.

Считаем изображение из файла в рабочее пространство Matlab и отобразим его на экране монитора.

L=imread("kinder.bmp");

figure, imshow(L);

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

Шаг 2: Формирование зашумленных изображений.

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

1) Добавление к изображению импульсного шума (по умолчанию плотность шума равна доле искаженных пикселей):

L2=imnoise(L,"salt&pepper", 0.05);

figure, imshow(L2);

Рис.2. Зашумленное изображение (импульсный шум).

2) Добавление к изображению гауссовского белого шума (по умолчанию математическое ожидание равно 0, а дисперсия - 0,01):

L1=imnoise(L,"gaussian");

figure, imshow(L1);

Рис.3. Зашумленное изображение (гауссовский шум).

3) Добавление к изображению мультипликативного шума (по умолчанию математическое ожидание равно 0, а дисперсия 0,04):

L3=imnoise(L,"speckle",0.04);

figure, imshow(L3);

Рис.4. Зашумленное изображение (мультипликативный шум).

Шаг 3: Использование медианного фильтра для устранения импульсного шума.

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

For i=1+n1:N+n1; disp(i) for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=Lr(i+a,j+b); end; end; end; if j>1+m1; for a=-n1:n1; D(n1+1+a,m+1)=Lr(i+a,j+m1); end; D=D(1:n,2:m+1); end; Lvyh(i,j)=median(D(:)); end; end; Lvyh=Lvyh(n1+1:N+n1, m1+1:M+m1); figure, imshow(Lvyh);

Для наглядного сравнения приведем три изображения вместе: исходное, зашумленное и восстановленное.

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

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

Шаг 4: Подавление шумовой составляющей с использованием операции сглаживания.

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

F=ones(n,m); % n и m размерность скользящей апертуры

Lser=filter2(F,Lroshyrena,"same")/(n*m);

Рис. 6. Восстановление изображения, искаженного импульсным шумом с применением операции сглаживания.

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

Шаг 5: Пороговый метод подавления шумов.

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

For i=1+n1:N+n1; disp(i) for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=Lr(i+a,j+b); end; end; end; if j>1+m1; for a=-n1:n1; D(n1+1+a,m+1)=Lr(i+a,j+m1); end; D=D(1:n,2:m+1); end; LS=mean(mean(D)); if abs(Lr(i,j)-LS)>10/255; % Установка порога Lvyh(i,j)=LS; else Lvyh(i,j)=Lr(i,j); end; end; end; Lvyh=Lvyh(n1+1:N+n1,m1+1:M+m1,:); figure, imshow(Lvyh);

Рис. 7. Восстановление изображения, искаженного импульсным шумом, с применением порогового метода подавления шумов.

Шаг 6: Низкочастотная фильтрация с использованием шумоподавляющих масок.

В Шаге 4 было рассмотрено применение операции сглаживания для устранения шума. Рассмотрим примеры низкочастотной фильтрации с использованием других шумоподавляющих масок. Это могут быть следующие маски:

Маска 1: Маска 2: .

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

F=(1/10)*;

figure, imshow(Lvyh);

Рис. 8. Результат восстановления зашумленного импульсным шумом изображения с применением маски 1 .

F=(1/16)*;

Lvyh=filter2(F,L,"same")/(3*3);

figure, imshow(Lvyh);

Рис. 9. Результат восстановления зашумленного импульсным шумом изображения с применением маски 2 .

Это были примеры подавления импульсных шумов. Рассмотрим аналогичные примеры подавления гауссовского и мультипликативного шумов.

Рис. 10. Результат восстановления зашумленного гауссовским шумом изображения с применением маски 1 и маски 2 .

Рис. 11. Результат восстановления зашумленного мультипликативным шумом изображения с применением маски 1 и маски 2 .

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

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

Возьмем некоторое исходное изображение (рис. 12):

L=imread("lily.bmp");

figure, imshow(L);

Рис. 12. Исходное цветное изображение.

Наложим на него импульсный шум с некоторыми характеристиками:

L=imnoise(L,"salt&pepper",0.05);

figure, imshow(L);

Рис. 13. Зашумленное изображение.

For k=1:s; % обработка отдельно по каждой составляющей L=Lin(:,:,k); for i=1+n1:N+n1; disp(i) for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=L(i+a,j+b); end; end; end; if j>1+m1; for a=-n1:n1; D(n1+1+a,m+1)=L(i+a,j+m1); end; D=D(1:n,2:m+1); end; Lres(i,j)=median(D(:)); end; end; end;

Рис. 14. Восстановленное изображение с применением метода медианной фильтрации.

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

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

Существует возможность установки значений интенсивностей на изображении с помощью функции 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. Кстати, изображения, приведенные в этом разделе, сформированы с использованием этой функции.

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

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

Заходим в меню Файл/Открыть или воспользуемся горячими клавишами 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

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

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

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

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

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

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

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

Изобретение относится к способам удаления шума в изображении и может быть использовано для улучшения качества изображения. Техническим результатом является упрощение удаления шума и повышение качества получаемого цифрового изображения, это достигается тем, что за счет преобразования яркости пикселей изображения с шумом путем решения уравнения диффузии недивергентной формы обеспечивается одновременное подавление шума и сохранение кромок изображения. 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 - количество узлов сетки (размер изображения в пикселях по данному измерению). Для решения указанной системы линейных уравнений применяют метод прогонки: сначала выполняют прямой ход подстановки: указанные уравнения преобразуют к виду (вычисляются коэффициенты

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

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

где

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