Hey,
I observed a bug for which I didn't find an explanation so far. I wrote a Poisson noise function which adds noise to the image. If I inspect the final images with imshow, all seems to be fine.
However, only for the parameter value nphot=3, nphot=5 and nphot=15, if I save the image (or inspect them directly with colorview) these images are scaled and shifted to the left. On the right part, there are some artifacts
I cropped the images so that only intensities between 0 and 1 are possible.
Not working: nphot=3, nphot=5, nphot=15
One working example: nphot=10
Here is the full code example:
using Images, TestImages, PoissonRandom, ImageView
function my_poisson(img; nphot=100)
nphot = float(nphot)
max_intens = maximum(img)
#scale image to maximum number of photons and apply poisson noise
img_noisy = map(x -> pois_rand(x / max_intens * nphot), img)
#rescale to initial intensity
img_noisy = img_noisy ./ nphot .* max_intens
#crop intensity
img_noisy = map(x -> max(0.0, x), img_noisy)
img_noisy = map(x -> min(1.0, x), img_noisy)
return img_noisy
end
img = testimage("cameraman")
#i=3, i=5 and i=15 cause strange output
for i=1:15
img_poiss = my_poisson(img, nphot=i)
img_poiss_view = colorview(Gray, img_poiss)
save(string("test", i, ".png"), img_poiss_view)
end
#this part works totally fine
img_poiss = my_poisson(img, nphot=15)
img_poiss_view = colorview(Gray, img_poiss)
imshow(img_poiss_view)
Edit: with different image size, the parameter, where the result is weird, changes.
Hey,
I observed a bug for which I didn't find an explanation so far. I wrote a Poisson noise function which adds noise to the image. If I inspect the final images with imshow, all seems to be fine.
However, only for the parameter value
nphot=3,nphot=5andnphot=15, if I save the image (or inspect them directly with colorview) these images are scaled and shifted to the left. On the right part, there are some artifactsI cropped the images so that only intensities between 0 and 1 are possible.
Not working: nphot=3, nphot=5, nphot=15
One working example: nphot=10
Here is the full code example:
Edit: with different image size, the parameter, where the result is weird, changes.