基本上我有:
sourceImage = im2double(imread(srcPath));
noiseImage = imnoise(sourceImage,'poisson');
问题是 sourceImage 和 noiseImage 看起来都差不多。
确实,如果我这样做
norm(sourceImage - noiseImage)
我明白1.4810e-05
了(这似乎差异太小)
我做错了吗?
基本上我有:
sourceImage = im2double(imread(srcPath));
noiseImage = imnoise(sourceImage,'poisson');
问题是 sourceImage 和 noiseImage 看起来都差不多。
确实,如果我这样做
norm(sourceImage - noiseImage)
我明白1.4810e-05
了(这似乎差异太小)
我做错了吗?
我相信有两种方法可以处理您的问题,基于对imnoise
泊松分布的描述(我将其称为p
):
1)将描述的图像保持srcPath
在整数域中
2)手动放大和缩小图像,请参阅http://www.mathworks.com/matlabcentral/newsreader/view_thread/242444
案例 1) 的原因是它p
不缩放整数值。但是,当使用双打时,p
假设它们按 1e12 缩放,但您的情况并非如此。打个比方,这就像在 [0, 1] 范围内截断双精度,并期望得到不同于 0 或 1 的整数。