2
$\begingroup$

In a set of images taken with the same infrared camera, I have a noise signal presumably originating from the camera chip. How would I go about extracting said signal to be able to substract it from all images I have taken?

$\endgroup$
  • $\begingroup$ Is the noise random? $\endgroup$ – geometrikal Jul 5 '13 at 14:45
  • $\begingroup$ No, it should be the same for every image $\endgroup$ – karlson Jul 31 '13 at 12:44
1
$\begingroup$

Basically you have to do a shading correction. This process removes known artifacts from an image (or a series of images) based on a reference image (or "compensation image" as it is sometimes called) containing only those artifacts. Such a reference images can be obtained by photographing a uniform object (i.e. a perfectly white wall or perfectly black darkness) under good conditions so that only the signal from the defect camera chip is recorded.

I have done this example with Mathematica, the basic principle can be implemented anywhere.

Given a set of images (I used grayscale images since I have no infrared images) without the defective signal

img1=

Mathematica graphics

img2=

Mathematica graphics

img3=

Mathematica graphics

and an artificial defect camera chip signal aka the reference image (I pulled this out of my hat).

noise = GaussianFilter[Binarize[Image[RandomReal[1, {299, 499}]], 0.95], 5]

Mathematica graphics

Now we generate the noisy images.

img1n = ImageAdd[img1, noise]
img2n = ImageAdd[img2, noise]
img3n = ImageAdd[img3, noise]

Mathematica graphics Mathematica graphics Mathematica graphics

Then we simply subtract the reference image from the noisy images and get the actual images without the noise.

ImageSubtract[img1n, noise]
ImageSubtract[img2n, noise]
ImageSubtract[img3n, noise]

Mathematica graphics Mathematica graphics Mathematica graphics

If you happen to have a noisy image and a perfectly fine image with exactly the same scene (and of course image sizes)

img1n =

Mathematica graphics

img1=

Mathematica graphics

then you can simply generate the reference image yourself by subtracting the latter from the former.

ImageSubtract[img1n, img1]

Mathematica graphics

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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