2012-12-07 13 views
2

Fondamentalement j'ai:Matlab imnoise Poisson ne rien faire?

sourceImage = im2double(imread(srcPath)); 

noiseImage = imnoise(sourceImage,'poisson'); 

Le problème est que les deux sourceImage et noiseImage regardent assez la même chose.

En effet, si je

norm(sourceImage - noiseImage) 

-je obtenir 1.4810e-05 (cela semble une différence trop faible)

Est-ce que je fais mal?

+1

Si 'srcPath' décrit une image 8bpp standard, alors le" problème "est facilement résolu en n'utilisant pas 'im2double'. Maintenant, selon la documentation de 'imnoise', lorsque l'entrée est décrite par des doubles, matlab s'attend à ce qu'ils soient mis à l'échelle par 1e12. Une façon de régler cela est de normaliser votre image à [0, 1] et de la classer par quelque chose comme 10e12, 50e12, etc, puis ajouter du bruit et réduire la taille. – mmgp

+0

@mmgp: Hmm c'est difficile. Postez une réponse de toute façon si vous voulez que je le + +1 –

Répondre

1

Je crois qu'il ya deux façons de gérer votre problème, en fonction de la propre description de imnoise pour la distribution de Poisson (je l'appellerai comme p):

1) Gardez l'image décrite par srcPath dans le domaine entier

2) manuellement et haut de gamme downscale votre image, voir http://www.mathworks.com/matlabcentral/newsreader/view_thread/242444

Le raisonnement pour le cas 1) est que p n'échelle des valeurs entières. Mais, en utilisant des doubles, p suppose qu'ils sont mis à l'échelle par 1e12, mais ils ne sont pas dans votre cas. Par analogie, cela équivaudrait à tronquer les doubles dans la plage [0, 1] et s'attendre à obtenir des entiers différents de 0 ou 1.

+1

Je n'ai peut-être pas assez insisté sur l'importance du lien inclus, mais il décrit exactement le même problème et il existe une solution pour traiter les doubles. Je ne sais pas si vous l'avez suivi. – mmgp

+0

mon image srcPath est déjà en virgule flottante (peut-être que c'est le problème) – dynamic

+0

Oh, d'accord, je n'étais pas au courant de ça. Point 2) s'applique toujours alors. – mmgp