Negative background in image processing

5 次查看(过去 30 天)
Hi, I’m working with pulsed laser measurements and is calculating how much energy I have within an certain angle. My problem is that I get so different result when I am processing the “same” images taken at different times. The images have been calibrated with an energy that has been measured.
I’m taking an monocromatic image of an laser lobe. I also take a second image without the laser, I.e. the background image.
im = double(cdata)-double(background)
The room is dark and this background image should contain the electrical noise (black level is set to be right above zero in my image capture program) and the background light. I substract the two image but I still get a lot of negative values in the surrounding area around the laser lobe.
The pixels intensities is all summed up and is set to the measured energy. So I get a certain energy per pixel intensity. I then calculte the energy that I have within a certain angle. Problem is that this result vary to much from image to image at the same location taken at different times.
I don’t analyze the whole image. What I do is that I identify the location of the laser lobe and take out an box that is twice the size of the laser lobe, and analyz only this area. This is because it would take to much time to analyze the whole image.
Am I doing anything wrong here?
I have noticed that I get a lot of negative values in the area that is not the laser lobe? Will this affect the calibration?
I don’t understand how I can get negative so much negative values.. shouldn’t the background image and surround area around the laser lobe image take out each other?
I have filers in front of the camera at all times. The filters might have been different when I take same image at different times but it’s always the same as the background image. The black level might have been different for the lobe images measurements at different times.
Confused ...
  3 个评论
captainmariah
captainmariah 2018-4-26
It should be same conditions. Ambient light is the same and the setting is the same when the image and the background image is captured. I simply block the laser light for the background image. The only thing that could have changed, if I take the same image twice of the lobe (+ background) but at different times, is how the black-level of the camera is set. The exposure time is 100 ms, gain = 1 or off, gamma is off etc.
Yes I don´t know how the IDS Ueye camera and program handle in-built background subtractions,.. but I am assuming it doesn´t do that.
If this is standard, how would I do this? What is the procedure for dark and white image processing before integration of the energy?
What happens if i take an image what has negative black-level? i noticed there was a big change in the result if this was not above zero. What happens to the background image and when I subtract this background image from the image with the lobe? I am assuming I don´t remove the electrical noise and the background light then?
Wick
Wick 2018-5-1
If IMAGE - DARK yields negative values then either your sensor has nonlinear response to its neighbor's values or your DARK image isn't actually dark.
Some sensors have cross talk. So when one pixel is lit, the pixels next to it read incorrectly as compared to their photons. Usually this results in the value being too high but in some systems there is current saturation such that a value too high in one well can reduce the sensitivity of the neighboring cells. This is not likely but possible.
As Guillaume mentioned, your dark image needs to be the same conditions. I wouldn't advocate setting your zero level above the noise threshold but rather in the middle of it. Then, calculate an RMS of your noise in the dark image. Then when you take the difference in bright-dark you'll expect a certain fraction of negative values for unexposed pixels due to noise. If, however, the noise behavior is the same you can model the difference between and remove that amount of negative sum in that region.

请先登录,再进行评论。

回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by