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.

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

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

См. также

|

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