【发布时间】:2013-02-13 14:30:15
【问题描述】:
我正在尝试以双精度向图像添加泊松噪声。我愿意:
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);
我看到I 和J 都差不多。我做错了什么?
请注意,我确实知道 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');
但它返回的图像几乎是全黑的。
【问题讨论】:
-
请记住,绝大多数图像的每个通道都有 8 位深度(红色、蓝色、绿色、灰色等),这意味着 256 个不同的值,即使映射到
0..1.为了使像素有所不同,噪声阈值必须> 1/256 ~= 4e-3。如果您的泊松源真的缩放到 1e-12,那方式低于阈值...