Info

此问题已关闭。 请重新打开它进行编辑或回答。

if i have no information of original image

1 次查看(过去 30 天)
vipul utsav
vipul utsav 2012-12-27
关闭: MATLAB Answer Bot 2021-8-20
if i have no information of original image and i do not add noise manually and i have just noisy image then how can i find signal to noise ratio of noisy image in matlab.

回答(2 个)

Image Analyst
Image Analyst 2012-12-27
You'd have to guess at what the signal would be then. What kind of guess do you want to make? Do you just want to blur the image with a box like this:
noiseFreeImage = conv2(grayImage, ones(3)/9);
  1 个评论
Image Analyst
Image Analyst 2012-12-27
Or
noiseFreeImage = imfilter(double(grayImage), ones(3)/9);

Stefan Karlsson
Stefan Karlsson 2012-12-27
You need to make assumptions about both your noise and your underlying signal or you cannot hope for anything from just an image observation. The simplest case is additive noise:
I(x) = f(x) + n(x)
for some observed image I, with underlying noise-free signal f (the "true image") and som noise source "n". The simplest assumptions of "n" is that its uncorrelated(have a delta for auto-correlation function).
applying a smoothing of I, with imfilter (i.e a convolution) will be linear operation, (denote convolution with ¤ and a linear smoothing filter as w) so that
I¤w = f¤w + n¤w
If you assume uncorrelated, zero mean noise, then the noise will go to zero even for small filters. However, the energy in the original signal will also reduce as a consequence of the filtering. You will have to make some assumptions on the natural image statistics of your "true signal" f in order to solve this(how much will the energy of your "true signal" reduce due to filtering).
Things become more complicated if you assume that n has some non-trivial auto-correlation function(i.e. has spatial dependency), and even worse if you have multiplicative noise.

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by