I would like to know what is the basic procedure to estimate the noise level of a CCD/CMOS sensor from an image/sequence of images acquired. I am going to use MATLAB to perform this operation.

What I did is I acquired a certain number of images with the shutter on, so the images are basically black images. The cameras I tested so far are all colour cameras, so there's a Bayer filter in front of the sensors. I have three channels R,G,B in the image output.

I was thinking that I can compute the average pixel value and the two-dimensional RMS to have an estimation of the noise. But I don't know if this is the recommended approach.

In addition, I guess that the noise estimation with the shutter on does not relate much with the noise level with the shutter on.

What do you think, do you think that the lens aperture also plays a significan role?


1 Answer 1


Instead of capturing with shutter on, I suggest you to capture a picture in low-light and set your exposure time as minimum as possible and the reduce the aperture. Capture a neutral surface(where R,G,B are equal,preferably neutral gray) so when averaging the entire frame you will know noise level change by particular color.Do your calculations on Bayer RAW instead of jpeg because RAW is directly from sensor without any extra processing.

Do you think lens aperture will play a significant role?

Yes.Lens aperture will play a significant role. If you are reducing the aperture it means the amount of light reaching the sensor is less and it has to be compensated by either increasing exposure time or the gain(Increasing the gain increases the noise).

  • $\begingroup$ Dear Navin, thanks a lot, I really appreciate your help. What would you do after doing so? Would you compute the RMS of all pixels? $\endgroup$
    – EmThorns
    Commented Nov 18, 2016 at 11:55
  • $\begingroup$ Yes..Calculate the mean of the image and divide it by RMS Noise. $\endgroup$ Commented Nov 18, 2016 at 12:50
  • $\begingroup$ Hello, how would you suggest creating the neutral gray surface? I can print it but I am not sure I can achieve the desired color because the printing colors are different from what the screen displays. What do you usually do? $\endgroup$
    – EmThorns
    Commented Nov 18, 2016 at 17:30
  • $\begingroup$ I use a surface painted in neutral gray.. $\endgroup$ Commented Nov 18, 2016 at 17:37
  • $\begingroup$ If you can't find a neutral surface,calculate in SNR by capturing different surface and then average it out.. $\endgroup$ Commented Nov 18, 2016 at 17:47

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.