The idea here is that a characteristic that is usually not desirable (increase in noise in image, with increase in temperature of the CCD) could actually be a desirable trait, if one cares to actually use it to sense temperature. Also, remember how it was mentioned on these forums before that the choice of silicon for the lens material in the FLIR One is not an ideal material? The reason is that silicon tends to absorb LWIR instead of transmitting it. And of course, since absorbed LWIR energy turns into heat, silicon tends to get hot (temperature increases) when exposed to LWIR radiation. That makes a silicon CCD the perfect sensor for creating a home-brew thermal imager. All you need to do is keep 100% of visible light and NIR light (wavelengths that have a photoelectric effect on silicon) from reaching it. And that's where the cheap germanium lenses that you can buy on eBay come in handy. Not only do they block visible and NIR light, they also transmit LWIR light (the desired wavelength range) and focus it. As long as you don't have a glass protector plate in front of the silicon surface of the CCD, the CCD itself should absorb the incoming focused LWIR light and heat up in the pattern of the projected LWIR image. That heat pattern turns into a noise-level pattern on the pixels of the CCD chip. If you take a one-minute long video of a stationary scene, and then later take that video file and load it into software to split the video into frames and sum the frames together (software-based video frame integration), you will resolve the noise pattern (a single frame contains only noise in that instant, but a sum of many frames reveals the noise pattern, which in this case is a thermal image). The sum of a full minute of video frames (30fps * 60 seconds = 1800 frames), should EASILY reveal the noise pattern (the thermal image).
Of course there is another source of noise, and that's truly random noise, and of course there are other patterns in the noise (other than the thermal pattern) such as variations in the sensitivity of the different pixels. To compensate for these non-thermal noise effects, you will need two 1-minute long exposures (1 minute long videos who's 8-bit frames have been summed in software to produce a high-bitdepth image file). One will be taken of a thermally flat object, and the other of the desired thermal scene. The noise sources in each image are as follows.
Thermally flat object image contains the noise pattern from:
thermally flat object + sensitivity variations throughout the CCD chip
Let's call this image "A"
Desired scene image contains the noise pattern from:
desired scene + sensitivity variations throughout the CCD chip
Let's call this image "B"
B - A = C
Image C contains the noise pattern from:
desired scene - thermally flat object
Since the thermally flat object can be approximated as a constant, you just need to add that constant to all of the pixel values.
C + constant = D
D is the desired image, and contains ONLY the thermal noise-level pattern associated with the desired scene.
How do you know what the constant is? Well you can't know it exactly, because for that you would need to know all the physical properties of the CCD chip itself as well as what the exact temperature of the thermally flat object, in order to empirically derive this constant. However you CAN easily find a constant that produces a displayable image. As long as you aren't going to try to actually measure the Kelvin temperatures in the scene, and only care about using this technique to create a thermal image for viewing purposes, the exact value of this constant doesn't matter. In this case, you can simply select a value for the constant that makes sure that none of the pixel values drops into the negative range (for display on a monitor, negative numbers are invalid). In this case, the constant that you need to add is simply the inverse of the lowest value in the image. If the lowest value in the image is -100, you add 100. If the lowest value in the image is 20, you add -20. This guaranties that the lowest value in the thermal image ALWAYS corresponds EXACTLY to the color black in the displayed image.
After that step of adding the constant, you need to make sure that the maximum value can never exceed 255 (the highest value that can be displayed on a computer monitor). To do that, there are a couple techniques. You can clip it (all pixels >255 get set to 255). Or you can scale it to fit (PixelOut = PixelIn / MaxPixelValueInImage * 255).
The end result should be an actual thermal image that should be able to be clearly seen on a computer monitor.