Matlab imnoise Poisson doing nothing?

青春壹個敷衍的年華 提交于 2019-12-10 23:45:32

问题


Basically I have:

sourceImage = im2double(imread(srcPath));

noiseImage = imnoise(sourceImage,'poisson');

The problem is that both sourceImage and noiseImage look pretty the same.

Indeed if I do

norm(sourceImage - noiseImage)

I get 1.4810e-05 (this seems a too low difference)

Am I doing it wrong?


回答1:


I believe there are two ways to handle your problem, based on the own description of imnoise for Poisson distribution (I will call it as p):

1) Keep the image described by srcPath in the integer domain

2) Manually upscale and downscale your image, see http://www.mathworks.com/matlabcentral/newsreader/view_thread/242444

The reasoning for case 1) is that p doesn't scale integer values. But, when using doubles, p assumes they are scaled by 1e12, but they are not in your case. As a analogy, it would be like truncating doubles in the range [0, 1] and expect to get integers different than 0 or 1.



来源:https://stackoverflow.com/questions/13765312/matlab-imnoise-poisson-doing-nothing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!