exponenta event banner

imnoise

Добавить шум к изображению

Описание

J = imnoise(I,'gaussian') добавляет нулевой средний гауссовский белый шум с дисперсией 0,01 к изображению в градациях серого I.

J = imnoise(I,'gaussian',m) добавляет гауссовский белый шум со средним m и дисперсия 0,01.

J = imnoise(I,'gaussian',m,var_gauss) добавляет гауссовский белый шум со средним m и расхождение var_gauss.

J = imnoise(I,'localvar',var_local) добавляет нулевой средний гауссовский белый шум локальной дисперсии var_local.

J = imnoise(I,'localvar',intensity_map,var_local) добавляет нулевой средний гауссовский белый шум. Локальная дисперсия шума, var_local, является функцией значений интенсивности изображения в I. Отображение значения интенсивности изображения на дисперсию шума определяется вектором intensity_map.

J = imnoise(I,'poisson') генерирует шум Пуассона из данных вместо добавления искусственного шума к данным. Дополнительные сведения см. в разделе Алгоритмы.

J = imnoise(I,'salt & pepper') добавляет шум соли и перца, с плотностью шума по умолчанию 0,05. Это затрагивает приблизительно 5% пикселей.

пример

J = imnoise(I,'salt & pepper',d) добавляет соль и перец шум, где d - плотность шума. Это влияет приблизительно на d*numel(I) пикселы.

J = imnoise(I,'speckle') добавляет мультипликативный шум с помощью уравнения J = I+n*I, где n равномерно распределен случайный шум со средним значением 0 и дисперсией 0,05.

J = imnoise(I,'speckle',var_speckle) добавляет мультипликативный шум с дисперсией var_speckle.

Примеры

свернуть все

Прочтите изображение в оттенках серого и отобразите его.

I = imread('eight.tif');
imshow(I)

Figure contains an axes. The axes contains an object of type image.

Добавьте к изображению шум соли и перца с плотностью шума 0,02. Просмотрите результат.

J = imnoise(I,'salt & pepper',0.02);
imshow(J)

Figure contains an axes. The axes contains an object of type image.

Входные аргументы

свернуть все

Изображение в градациях серого, указанное как числовая матрица. Если I имеет более двух размеров, затем изображение обрабатывается как многомерное изображение в градациях серого, а не как изображение RGB.

imnoise ожидает пиксельные значения типа данных double и single находиться в диапазоне [0, 1]. Вы можете использовать rescale для настройки значений пикселов в соответствии с ожидаемым диапазоном. Если изображение имеет тип double или single со значениями, выходящими за пределы диапазона [0,1], imnoise отсчитывает входные значения пикселей в диапазоне [0, 1] перед добавлением шума.

Примечание

Для шума Пуассона изображения типа данных int16 не допускаются.

Типы данных: single | double | int16 | uint8 | uint16

Среднее значение гауссова шума, определяемого как числовой скаляр.

Дисперсия гауссова шума, заданная как числовой скаляр.

Локальная дисперсия гауссова шума, указанная как одно из следующих значений:

  • Числовая матрица того же размера, что и I.

  • Числовой вектор одинаковой длины intensity_map.

Значения интенсивности, отображаемые в дисперсию гауссова шума, заданную как числовой вектор. Значения нормализуются к диапазону [0, 1].

Можно построить график функциональной взаимосвязи между дисперсией шума var_local и интенсивность изображения с помощью команды plot(intensity_map,var_local).

Плотность шума для шума соли и перца, указанная как числовой скаляр. Шум прикладывается приблизительно к d*numel(I) пикселы.

Дисперсия мультипликативного шума, заданная как числовой скаляр.

Выходные аргументы

свернуть все

Шумное изображение, возвращаемое в виде числовой матрицы того же типа данных, что и входное изображение I. Для изображений типа данных double или single, imnoise функция отсчитывает выходные значения пикселей до диапазона [0, 1] после добавления шума.

Алгоритмы

  • Среднее значение и параметры дисперсии для 'gaussian', 'localvar', и 'speckle' типы шума всегда указываются, как если бы изображение имело класс double в диапазоне [0, 1]. Если входное изображение имеет другой класс, imnoise функция преобразует изображение в double, добавляет шум в соответствии с указанным типом и параметрами, закрепляет значения пикселей в диапазоне [0, 1], а затем преобразует шумное изображение обратно в тот же класс, что и входные данные.

  • Распределение Пуассона зависит от типа данных входного изображения I:

    • Если I является двойной точностью, то входные значения пикселей интерпретируются как средства распределения Пуассона, масштабированные 1e12. Например, если входной пиксель имеет значение 5.5e-12, то соответствующий выходной пиксель генерируется из распределения Пуассона со средним значением 5,5 и затем масштабируется на 1e12.

    • Если I - единичная точность, используемый масштабный коэффициент 1e6.

    • Если I является uint8 или uint16, то входные значения пикселей используются непосредственно без масштабирования. Например, если пиксель в uint8 входной имеет значение 10, то соответствующий выходной пиксель будет сгенерирован из распределения Пуассона со средним значением 10.

  • Добавить 'salt & pepper' шум с плотностью d к изображению, imnoise сначала присваивает каждому пикселю случайное значение вероятности из стандартного равномерного распределения на открытом интервале (0, 1).

    • Для пикселей со значением вероятности в диапазоне (0, d/ 2), значение пикселя устанавливается равным0. Число пикселов, для которых установлено значение 0 составляет приблизительно d*numel(I)/2.

    • Для пикселей со значением вероятности в диапазоне [d/2, d), значение пикселя устанавливается равным максимальному значению типа данных изображения. Число пикселов, для которых задано максимальное значение, приблизительно равно d*numel(I)/2.

    • Для пикселей со значением вероятности в диапазоне [d, 1), значение пикселя остается неизменным.

Расширенные возможности

См. также

|

Представлен до R2006a