Как правило, при добавлении пуассоновского шума к изображению вы хотите использовать значение пикселя в качестве среднего значения (после соответствующего масштабирования). Это более точно соответствует пуассоновскому шуму при получении изображения.
Например, скажем, ваше изображение, которое находится в диапазоне 0-1 после im2double
, было получено в фотонно-ограниченном микроскопе. И скажем, что масштабирование таково, что 1e9 фотонов на один пиксель представлены как значение пикселя, равное 1. Чтобы симулировать здесь фотонный шум, этот один пиксель с (бесшумным) значением 1 будет иметь (шумное) значение poissrnd(1e9)/1e9
. Другой пиксель со значением 0,5 будет иметь значение poissrnd(1e9*0.5)/1e9
.
В наборе инструментов обработки изображений есть функция imnoise
, которая делает именно это при вызове следующим образом:
img = imnoise(img,'poisson');
Эта функция использует масштабирование 1e12. Вы хотели масштабировать 1e9, поэтому вам придется разделить изображение на 1e3:
img = imnoise(img/1e3,'poisson')*1e3;