how to create noisy image based on Poisson's noise

80 ビュー (過去 30 日間)
Ankita Jindal
Ankita Jindal 2021 年 1 月 7 日
コメント済み: Bjorn Gustavsson 2021 年 1 月 12 日
hello friends,
I want to create noisy image in which noise is based on Poisson's distribution. Please check the picture you will better understand what I need.
this is very small (size 4x4 or may be 6 x 6)
Note: I already tried poissrnd, imnoise inbuilt functions those are not helpful in this case.
Hope for fruitful suggestions.
  1 件のコメント
Bjorn Gustavsson
Bjorn Gustavsson 2021 年 1 月 8 日
Was the explanation below good enough to use?

サインインしてコメントする。

回答 (1 件)

Bjorn Gustavsson
Bjorn Gustavsson 2021 年 1 月 7 日
Well poissrnd is what you want, as far as I understand. If you have an "ideal image" with intensity I:
I = repmat(1+[0:11].^2,[7,1]); % some arbitrary image in the Poisson-relevant intensity-range
then one noisy image should be found like this:'
In = poissrnd(I);
You can check this by looking at the histogram of the intensities in the different columns of In (looks better if you make I slightly larger than 7 rows...). Then you should see that the distribution in the last few columns starts to be increasingly normal-distributed, as they should be and the characteristic Poisson-assymetry is only visible for the lower intensities.
HTH
  2 件のコメント
Bjorn Gustavsson
Bjorn Gustavsson 2021 年 1 月 7 日
編集済み: Bjorn Gustavsson 2021 年 1 月 7 日
The importan point to understand here is that images with "Poisson-distributed" noise arise in situations where the image intensities are produced with poisson-distributions, such as PET-imaging, low-light imaging with photon-counting accuracy. There the observed image intensity in each pixel is one random-number drawn from a poisson-distribution with the expected intensity as the lambda-parameter (that will vary from pixel to pixel). I am "rather convinced" that this is the only correct interpretation of "image with Poisson-distributed noise", but interested to hear if there's some other real-world configuration that generates this in another fashion.
Bjorn Gustavsson
Bjorn Gustavsson 2021 年 1 月 12 日
The important step to realize here is that Poisson-distributed image intensities does not arise from an additive noise - unless the lambda-parameter is large enough that the Poisson-distribution becomes approximately normal-distributed:
I = repmat(1+[0:11].^2,[7000,1]); % large enough "image"
In = poissrnd(I);
for i2 = 1:size(In,2),
subplot(6,2,i2)
hist(In(:,i2),min(:,i2):max(In(:,i2)))
end
This should illustrate that for large intensities the intensity-distribution becomes approximately N(I,I). For lower values the distribution is properly Poissonian and we can only accept that and take proper care. For real images we typically only have one intensity-sample of each pixel so we only know In, which makes it "interesting" to work with. In my work the intensities typically are large enough that I am in the normal-distributed range and I can also often use low-pass-filtered images as estimates of the ideal image and get normal-distributed residuals.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by