ZnSe CO2 laser focus lens. these are either Biconvex or Plano Convex. Both will work OK. Plano Convex is likely the best performing
...
ZnSe lense are common in certain thermal camera optics as a high transmission efficiency and relatively cheap element.
I'm looking forward to seeing what people come up with on the firmware, perhaps the real value is there.
@miguelvp, I'd add a button control to the form in the UI editor and double click on it to create a new event handler. If you really want the keyboard, in the UI editor properties window, the events tab will let you hook a KeyPress event (or in Form1(), this.KeyPress += <event function>; MSDN has all the details.)
I'm ultimately going to seriously refactor a lot of this stuff, I have some things I'd like to add also.
My opinion for best way to dead pixel removal and noise control.
Dead pixel problem:
Take an image from thermally equal surface, convert it into black and white. Mark position of all dead pixels and replace it like this:
Get values from top, bottom, left and right neighbor pixel. Check which pair (horizontal or vertical) has smallest difference in color.
Calculated pixel should have the average value of this pair. This will work great on small vertical or horizontal changes in temperature.
(My code already implements this)
If you use multiple frames from a moving image then this should be possible in background without any need for a manual calibration:
- Detect dead pixels as you described
- Filter the dead pixel map over several frames, but update only when the image is changing (to avoid false masking of good pixels in static scenes)
- Use the generated dead pixel mask to clean the image
It should be even possible to compensate hot pixels (pixels that are not completely dead but have a significant difference in gain, so they can not be compensated with the shutter).
Maybe it could be even possible to predict the drift between shutter calibrations and remove the remaining nonuniformity.
I would not convert the data to 8bit before applying the palette: The hot metal palette allows to display about 1024 different colours. Especially after scaling the image to double size, this gives a much more smooth display and shows more details than rounding to 8bit.
void seek_thermal_lut_iron256_get(unsigned int idx, unsigned char *pr, unsigned char *pg, unsigned char *pb );
unsigned int seek_thermal_lut_iron256_size();
Mike,
Regarding the temperature gradient issue.
I thought he same as you when I saw teh small aperture at the rear of the lens 'tube'. I am slo considering the eefect that may be caused when teh lens 'tube' touches teh microbolometer on one side as appeared to be the case in your video.
If the lens tube is warmer than the microbolometer, contact between teh two could potentially cause a localised heat transfer into the microbolometer. The area in contact and adjacent would be warmed but the opposite side of the microbolometer is adjacent to the shutter access hole and may stay cooler as a result due to air cooling. As the camera warms up, teh lens tube may continue to rise in temperature and cause greater temperature differential impact on teh microbolometer. Just a thought.
Aurora
I only skimmed though the video, but from my experience with superresolution (both as final product embedded in a digital camera and playing with some algorithms) it works in theory but is not really good for practical usage except with a lot of manual tweaking for each scene.
I've been playing with it too and results are encouraging. (See attachement)
No they aren't because I don't have the module yet.
What I have done:
- resize all 4 images to 50%