periodic noise removal

  • Follow


Hi,

I am trying to locate an object via a camera image. I'm taking a background image (with no object) then taking another image within a few seconds with the object. I then subtract the background from the foreground image as the first step to locating the object.

The issue I'm having is that there is sometimes very faint periodic noise (probably from the fluorescent lighting, which I cannot change) I suppose 60 Hz, and when it's present in either one or both of the images and I do the subtraction the noise becomes more prevalent and is causing problems later on in my detection. If I look at the FFT of either image, it's very difficult to find the indication of the noise.

So, my question is, is there a good i.e. been there, done that,  way to find this very faint signal in the image and remove it prior to the subtraction? For instance, should I square the image (as doubles) to amplify, or something along those lines? 

Thanks

Rick 
0
Reply Richard 9/21/2010 4:30:44 PM

I can't see your image, so it's hard to tell.  Is the periodic noise
spatial or temporal?  Fluorescent lights might cause a slight temporal
noise if your image capture was not perfectly synchronized with the
lights.  I believe the fluorescent lights pulse at 120 Hz (not 60 like
the line voltage) because you get a pulse of light for both the
positive and negative "hump" of the sine wave.  So you should get
about 4 pulses of light for each video frame if you're snapping at 30
frames per second.  I don't think they should cause any kind of
spatial waviness in an image, but maybe they do depending on how the
signal is read off the sensor (but I doubt it).  I think both frame
transfer and interline transfer sensors "dump" the whole image at
once, unless maybe you have some kind of rolling electronic shutter
kind of setup, so all lines in the image see the same pulses, hence no
spatial noise due to lamps.

If you do have spatial periodic noise, it's possible you can do some
kind of band-stop filter on the image, such as discussed here with an
image that had an annoying rippling or waving intensity modulation
over the image:
http://groups.google.com/group/sci.image.processing/browse_frm/thread/31da354b5eea74c7/755de34f1a76219c?hl=en&lnk=gst&q=whitehouse+medfilt2#755de34f1a76219c

Why don't you post your image to http://drop.io?

Or try the code given in that post on your image:
originalGrayImage = im2double(imread('whitehouse.tif'));
subplot(2,2,1);
imshow(originalGrayImage);
title('Original Grayscale Image', 'FontSize', fontSize);
set(gcf, 'Position', get(0,'Screensize')); % Enlarge figure to full
screen.

lowpass = 21;
highpass = 7;
Idm = medfilt2(originalGrayImage, [lowpass lowpass]);
subplot(2,2,2);
imshow(Idm);
title('Lowpass Lowpass Image', 'FontSize', fontSize);

Ide = originalGrayImage - medfilt2(originalGrayImage, [highpass
highpass]);
subplot(2,2,3);
imshow(Ide);
title('Highpass Highpass Image', 'FontSize', fontSize);

finalFilteredGrayImage = Idm + Ide;
subplot(2,2,4);
imshow(finalFilteredGrayImage);
title('Final Filtered Image', 'FontSize', fontSize);

0
Reply ImageAnalyst 9/21/2010 6:18:49 PM


I made three images that sort of exaggerate the problem. I took two pictures of a black notebook. Then I subtracted them. In the subtracted image, you can see the periodic noise, especially on the left side. (the image is quite dark - you have to adjust the histogram to see the data).

the url is

http://drop.io/56fcnnl


ImageAnalyst <imageanalyst@mailinator.com> wrote in message <c720db17-e799-451e-acc4-d4f79b3d1170@c32g2000vbq.googlegroups.com>...
> I can't see your image, so it's hard to tell.  Is the periodic noise
> spatial or temporal?  Fluorescent lights might cause a slight temporal
> noise if your image capture was not perfectly synchronized with the
> lights.  I believe the fluorescent lights pulse at 120 Hz (not 60 like
> the line voltage) because you get a pulse of light for both the
> positive and negative "hump" of the sine wave.  So you should get
> about 4 pulses of light for each video frame if you're snapping at 30
> frames per second.  I don't think they should cause any kind of
> spatial waviness in an image, but maybe they do depending on how the
> signal is read off the sensor (but I doubt it).  I think both frame
> transfer and interline transfer sensors "dump" the whole image at
> once, unless maybe you have some kind of rolling electronic shutter
> kind of setup, so all lines in the image see the same pulses, hence no
> spatial noise due to lamps.
> 
> If you do have spatial periodic noise, it's possible you can do some
> kind of band-stop filter on the image, such as discussed here with an
> image that had an annoying rippling or waving intensity modulation
> over the image:
> http://groups.google.com/group/sci.image.processing/browse_frm/thread/31da354b5eea74c7/755de34f1a76219c?hl=en&lnk=gst&q=whitehouse+medfilt2#755de34f1a76219c
> 
> Why don't you post your image to http://drop.io?
> 
> Or try the code given in that post on your image:
> originalGrayImage = im2double(imread('whitehouse.tif'));
> subplot(2,2,1);
> imshow(originalGrayImage);
> title('Original Grayscale Image', 'FontSize', fontSize);
> set(gcf, 'Position', get(0,'Screensize')); % Enlarge figure to full
> screen.
> 
> lowpass = 21;
> highpass = 7;
> Idm = medfilt2(originalGrayImage, [lowpass lowpass]);
> subplot(2,2,2);
> imshow(Idm);
> title('Lowpass Lowpass Image', 'FontSize', fontSize);
> 
> Ide = originalGrayImage - medfilt2(originalGrayImage, [highpass
> highpass]);
> subplot(2,2,3);
> imshow(Ide);
> title('Highpass Highpass Image', 'FontSize', fontSize);
> 
> finalFilteredGrayImage = Idm + Ide;
> subplot(2,2,4);
> imshow(finalFilteredGrayImage);
> title('Final Filtered Image', 'FontSize', fontSize);
0
Reply Richard 9/22/2010 1:53:08 AM

I'm not sure what it is.  Maybe you could ask in sci.image.processing
or sci.optics or some group on microelectronics.  I have seen fixed
pattern noise for video images that occurs when my camera settings are
not optimal - the noise appears as stripes but with more of a sharp
boundary than yours.  It goes away when I adjust the camera better.
Or maybe it might have something to do with vibration of your system.
I assume that it's the same sample and uniform so that the ripples you
see are not really in the scene.  Maybe it's some kind of pulsing
light in your environment - maybe you could try with a battery
operated light source and see if it improves.

One thing that looks wrong is that it looks like you subtracted two
uint16 images.  If you do that, you'll be clipping at 0 since negative
numbers aren't allowed, so you better convert them to int32 before you
do the subtraction or else your subtraction will be wrong.  You should
get both positive and negative numbers for these kinds of images that
you provided.

Do the ripples change position, or are they always in the very same
place?  It's best if you can figure out the source of it rather than
come up with some way to try to fix it after it's already ruined your
image.
0
Reply ImageAnalyst 9/22/2010 3:02:11 AM

You haven't mentioned your camera make or exposure settings, but you are probably just amplifying LSB (least significant bit) sensor noise as well as any non-linear sensor response.
0
Reply Mark 9/22/2010 11:44:23 AM

4 Replies
680 Views

(page loaded in 0.083 seconds)

Similiar Articles:













7/19/2012 8:14:35 PM


Reply: