基本上我有:
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 的整数。