That microbolometer still looks hotter than I would have expected but interestingly there is no evidence of a hot spot on the rear of the PCB under the microbolometer.
It will be very interesting to hear SEEKs thoughts on this matter, hopefully tomorrow.
Aurora
After being on for a while and the shutter forced open if I force it close, the image is less even but not terrible:
The shutter arm may also conduct away heat from that part of the flag.
New app version was released on the 24th:
https://play.google.com/store/apps/details?id=com.tyriansystems.SeekThermal
What's new:
* Corrected crashing issues on various devices.
* Image quality improvements.
* Other misc. Improvements.
Can someone confirm if it has a firmware upgrade?
Image has new firmware built Oct 21.
#if AVERAGE
int[] deadpixelarray = { 10, 6, 2, 13, 9, 5, 1, 12, 8, 4, 0, 11, 7, 3, 14 };
int deadpixel;
ulong average;
ulong numpoints;
int v;
for (y = 0; y < 156; y++)
{
deadpixel = deadpixelarray[y % 15];
for (int x = 0; x < 208; x++)
{
if (x == deadpixel)
{
average = 0UL;
numpoints = 0;
if (x > 0)
{
average += data.PixelData[c - 1];
numpoints++;
}
if (x < 208)
{
average += data.PixelData[c + 1];
numpoints++;
}
if (y > 0)
{
average += data.PixelData[c - 208];
numpoints++;
}
if (y < 155)
{
average += data.PixelData[c + 208];
numpoints++;
}
if (numpoints > 0)
average = average / numpoints;
else
average = data.MinValue;
v = (int)average;
deadpixel += 15;
}
else
{
v = data.PixelData[c];
}
v = (v - data.MinValue) * 255 / (data.MaxValue - data.MinValue);
if (v < 0) v = 0;
if (v > 255) v = 255;
bmp.SetPixel(x, y, Color.FromArgb(v, v, v));
c++;
}
}
#else
for (y = 0; y < 156; y++)
{
for (int x = 0; x < 208; x++)
{
int v = data.PixelData[c++];
v = (v - data.MinValue) * 255 / (data.MaxValue - data.MinValue);
if (v < 0) v = 0;
if (v > 255) v = 255;
bmp.SetPixel(x, y, Color.FromArgb(v, v, v));
}
}
#endif
Edit: got rid off an unused variable and defaulted the dead pixel to min value instead of max value if it couldn't average (but that should never happen anyways)https://github.com/sgstair/winusbdotnet
I still have some plans to improve it, at the moment it's just doing very dumb calibration on the raw data and rendering it.
New app version was released on the 24th:
https://play.google.com/store/apps/details?id=com.tyriansystems.SeekThermal
What's new:
* Corrected crashing issues on various devices.
* Image quality improvements.
* Other misc. Improvements.
Can someone confirm if it has a firmware upgrade?
if (bmpQueue.Count > 3) bmpQueue.Dequeue();
it was > 5 //get image
Bitmap sourceImg = new Bitmap(@"C:\temp\thermo\seek.png");
Color leftPixel, centerPixel, rightPixel, topPixel, bottomPixel;
int avgVal;
//loop trough horiz pixels
for (int x = 0; x < sourceImg.Width-2; x++)
{
for (int y = 0; y < sourceImg.Height-2; y++)
{
leftPixel = sourceImg.GetPixel(x, y + 1);
rightPixel = sourceImg.GetPixel(x + 2, y + 1);
topPixel = sourceImg.GetPixel(x + 1, y);
bottomPixel = sourceImg.GetPixel(x + 1, y + 2);
centerPixel = sourceImg.GetPixel(x + 1, y + 1);
avgVal = (leftPixel.R + rightPixel.R + topPixel.R + bottomPixel.R) / 4;
if (Math.Abs(leftPixel.R - centerPixel.R) > 20) //if pixel is too different use average color from near pixels
{
sourceImg.SetPixel(x + 1, y + 1, Color.FromArgb(avgVal, avgVal, avgVal));
}
}
}
sourceImg.Save(Application.StartupPath + "\\clear.png");