matlab - double 图像上的图像泊松噪声(散粒噪声)

标签 matlab noise poisson

我正在尝试以双倍精度向图像添加泊松噪声。我愿意:

I = im2double(imread('mypic.tif')); % mypic.tif is already in the range 0...1 in double precision
J = imnoise(I,'poisson');
imshow(I),figure,imshow(J);

我看到 IJ都差不多。我做错了什么?
请注意,我确实知道 imnoise 会将值缩放 1e-12,但我真的不明白如何正确使用它。

我想我可以使用 poissrnd()手动添加噪声以绕过 imnoise

关于缩放,我使用的是 code like this :

maxValue = max(I(:));

% This is necessary based on imnoise behaviour
I = I * 10e-12;

% Generate noisy image and scale back to the original intensities. 
J = maxValue * imnoise(I, 'poisson'); 

但它返回的图像几乎全黑。

最佳答案

正如链接所说,这是一个大数问题。

尝试使用较小的比例:

I = im2double(imread('eight.tif')); %Matlab default image
scale = 1e9;
J = scale * imnoise(I/scale, 'poisson'); 
close all; imshow(J);

输入:

enter image description here

输出(1e9):

enter image description here

输出(1e10):

enter image description here

关于matlab - double 图像上的图像泊松噪声(散粒噪声),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117923/

相关文章:

python - 在 python 中拟合泊松直方图的问题

c++ - 如何生成泊松过程?

matlab - 如何将复杂的 csv 文件导入到 Matlab 中的数值向量

arrays - matlab 中的“数组数组”?

image - 计算图像中圆心的坐标

matlab - 如何积累数据集?

ffmpeg - 模拟电视噪音

matlab - 从音频信号中去除噪声

javascript - JS : Prevent Unresponsive Script Warnings

c++ - 从Poisson分布中提取数字的性能较低