Simple noise model :
Nsys = Nphoton + Nthermal
Nsys - System / Image (number of electrons)
Nphoton - Photon created (mean number of electrons)
Nthermal - Thermal created (mean number of electrons)
Depending on the light level the system noise is either dominated by the photon shot noise (high light levels) or by the thermal and readout noise (low light levels).
Since you are interested in the SNR of the fluorescence signals you can assume the ‘regime of high light levels’ and can neglect the thermal and readout noise.
In this case the signal varies with a standard deviation of sqr(Nphoton) due to the Poisson characteristics of the fluorescence signal.
The SNR is
SNR = Nphoton / sqr(Nphoton)
The digital signal is approximately
Idigital = Nsys * k ( k – output conversion and quantization )
or if thermal and readout noise are ignored
Idigital = Nphoton * k
Then the SNR then
SNR = Nphoton / sqr(Nphoton) = Idigital / sqr(Idigital) * k’
If k’ is not known the SNR can be calculated by determining the signal noise in bright homogeneous image regions.
You can subtract a noise floor (average thermal and readout noise) from your signal.
The noise floor can be measured by
- averaging images captured with closed shutter and integration time according to your application => thermal noise
and / or
- averaging images captured with closed shutter and zero integration time => readout noise.
Subtracting a noise floor from image signals is uncritical and will not create negative values (as long as the signal level is high).
Wether clipping negative values in the background region is acceptable depends on your application and the image processing.