0
$\begingroup$

Are there known techniques to estimate the SNR of an image in small neighborhoods (say like 11x11) without any knowledge of the clean image, with arbitrary content ? Denoising is not required.


Update:

On second thoughts, I removed the qualifier locally, as it seems superfluous.

$\endgroup$
5
  • 3
    $\begingroup$ "without any knowledge"... (probably) there isn't any... a trained SNR estimator would do it without knowing the particular clean image, but it still has a lot of knowledge about the class of images that's supposed to produce the clean image... $\endgroup$
    – Fat32
    Commented Nov 17, 2021 at 18:03
  • $\begingroup$ @Fat32: what if we restrict the image to be piecewise constant or piecewise smooth ? Is there a better chance ? (Of course without explicit reconstruction.) $\endgroup$
    – user7657
    Commented Nov 17, 2021 at 22:24
  • $\begingroup$ Yes, such a restriction will allow "some" estimation of SNR based on image class models... $\endgroup$
    – Fat32
    Commented Nov 17, 2021 at 22:57
  • $\begingroup$ @Fat32: are there known techniques. $\endgroup$
    – user7657
    Commented Nov 17, 2021 at 22:59
  • $\begingroup$ check out the literature for "blind" or "model based" SNR estimation. I can't suggest anyone of them though. $\endgroup$
    – Fat32
    Commented Nov 18, 2021 at 9:04

2 Answers 2

1
$\begingroup$

Without any knowledge of the clean image, with completely arbitrary image content?

No. Because what if the image is a perfect portrait of noise? Without prior knowledge that an image is somehow "not noise", you can't distinguish between an image of noise (which looks just like noise to the image consumer), and a noisy image (which looks just like noise to the image consumer).

You need some prior knowledge of the image characteristics, if not of the image itself.

If, for example, I give you an image and I promise you that because it was taken on a foggy day it has a certain known degree of Gaussian blur, then you can take a noisy image of that scene and -- to a certain extent -- infer how much of the image must be noise.

As a mathematically more difficult, but conceptually easier example, if I give you an image and tell you that it was painted by some 1950's modern artist who only painted large monochromatic blocks, then you could identify the boundaries of the blocks, segment the image into "this is all a certain shade of red", "this is all a certain shade of ochre", etc., then you could, again, determine the levels of noise within those segments and, thus, infer the level of noise in the overall image.

But -- to pound home the point -- if I gave you an image that some modern artist from 1990 composed by generating random noise and rendering it into a file and said "here's an image of totally random noise that's been corrupted by more totally random noise" then there would be no mathematical process that would separate out the intended image (which is just a sample of noise) from the resulting image (which, again, is just a sample of noise).

$\endgroup$
4
  • $\begingroup$ Of course, don't tell me. Are there known techniques under reasonable a priori property of the image ? $\endgroup$
    – user7657
    Commented Nov 19, 2021 at 7:51
  • $\begingroup$ Your "reasonable" may be my "wildly unreasonable", or visa versa. Your actual question seems to be quite different from your question as written. This is Stackexchange -- please edit your question (no need to preface things with "update" or "edit" -- Stackexchange maintains an edit history). Please make your question full and complete, including the fact that some image properties are known. If you know, what those properties are (i.e., what's "reasonable" to you), describe them. $\endgroup$
    – TimWescott
    Commented Nov 19, 2021 at 15:37
  • $\begingroup$ No, I am expecting the answerers to make this "reasonable" concrete. $\endgroup$
    – user7657
    Commented Nov 19, 2021 at 15:43
  • 1
    $\begingroup$ Then my answer stands, for the reason I gave. Here's the exchange that'll happen if you don't change your question: someone will go to a lot of effort telling you how it's done by their "reasonable". Then you'll say "well, that won't work" and maybe you'll cough up some scrap of information. Then someone else will try, etc. Much time will be wasted, and we'll all be frustrated. So -- just tell us the relevant information up front. Or do as Fat32 says, and search the literature for "blind" or "model based" SNR estimation. $\endgroup$
    – TimWescott
    Commented Nov 19, 2021 at 18:33
0
$\begingroup$

Do you have access to raw sensor readout, or only a processed image?

Looking at raw camera sensels, I would think that assuming that the image noise is e.g. dominated by signal dependent but otherwise spatially invariant shot noise, that you could do some kind of modelling. Neighbour pixels often tend to be quite similar (particular in out of focus or smooth areas). If they are dissimilar, one component should be shot noise. Shot noise should be a global function of pixel magnitude, so the consistently «signal level dependent» component of neighbourhood variability could perhaps be attributed to shot noise.

$\endgroup$
1
  • $\begingroup$ I include in noise surface (micro-)texture, hence the concept is larger than image acquisition noise. But texture is an ambiguous term, often taken for periodic or quasi-periodic signal. Hence that "noise" does not have specific properties. $\endgroup$
    – user7657
    Commented Nov 18, 2021 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.