static bool is_pattern_pixel(int x, int y)
{
int pattern_start = (10 - y * 4) % 15;
if (pattern_start < 0)
pattern_start = 15 + pattern_start;
return x >= pattern_start && ((x - pattern_start) % 15) == 0;
}
A nice feature would be a checkbox below Save button with text "Capture image after calibration".
So the app would wait for shutter cal before taking image. Because those images contain the least noise.
I know what you mean about the range thing and I thought about that too. It can't be done like that because it would wiggle a lot.One way to do it would be to just hide both sliders while in auto-range mode.
1>MainDialog.cpp(482): error C2039: 'value_type' : is not a member of '`global namespace''
1>MainDialog.cpp(482): error C2146: syntax error : missing ')' before identifier 'value_type'
1>MainDialog.cpp(482): error C2059: syntax error : ')'
1> thermal.cpp
1> wxcrafter.cpp
1> wxcrafter_bitmaps.cpp
1> wximageview.cpp
1>thermal.cpp(342): error C2675: unary '!' : 'boost::synchronized_value<T>' does not define this operator or a conversion to a type acceptable to the predefined operator
1> with
1> [
1> T=bool
1> ]
1>thermal.cpp(359): error C2451: conditional expression of type 'boost::synchronized_value<T>' is illegal
1> with
1> [
1> T=bool
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>thermal.cpp(388): error C2675: unary '!' : 'boost::synchronized_value<T>' does not define this operator or a conversion to a type acceptable to the predefined operator
1> with
1> [
1> T=bool
1> ]
Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1008,STL containers,compatible with 2.8 ),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1002,STL containers,compatible with 2.8 ).
...
This is image of a room corner with approx 3*C temp range:
(https://www.eevblog.com/forum/thermal-imaging/seekthermal-how-to-correct-the-image-received-from-the-sensor/?action=dlattach;attach=196065;image)
"My" new app ... with some median averaging of multiple frames the image becomes really clean:
(https://www.eevblog.com/forum/thermal-imaging/seekthermal-how-to-correct-the-image-received-from-the-sensor/?action=dlattach;attach=196084;image)
Let's continue this topic (https://www.eevblog.com/forum/thermal-imaging/seekofix-new-windows-software-for-seekthermal/msg918372/#msg918372 (https://www.eevblog.com/forum/thermal-imaging/seekofix-new-windows-software-for-seekthermal/msg918372/#msg918372)) here:
I have now extracted ID9 values as suggested. The chart really looks the same.
So does this mean that value 2000 is -40*C and value 13316 is 350*C? What about the last "bump" with values from 15819 to 16383?
Is your 13316 value in pixel 14635?Yes it is.
The next key to this is that pixel 1 in the image & cal frames gives an indication of the temperature of, well, "somewhere" in the camera.
Thanks for the upload frenky. Except for a few extra carriage returns and corrupted numbers at line 6210 and 22785, yours is exactly the same as mine. I'll put mine up here for good measure.
According to the view counter on your graph image, this page has been popular since you posted that...but nobody else is chiming in to say "Hey mine's different." or otherwise. Maybe not enough time yet...
If by "stacked" he means averaged
I don't know what degree resolution frenky is showing there.
QuoteIf by "stacked" he means averaged
Yes I'm using ImageMagick "convert *.png -evaluate-sequence median OUT.png" to get median average of multiple images.
QuoteI don't know what degree resolution frenky is showing there.
If I take an image of isothemal plane I get about 5*C of temp difference. That is because of shutter heating up.
It seems that your Seek does not have that issue?
I will put all my efforts now into effectively cooling Seek with heatsink small as possible. (I'll put precise temp sensor inside for realtime temp regulation.)
Thank you. For comparison purposes, do you see noticeable improvement if you only average 4 frames?
By "resolution" I was referring to how you assign the colors. Does a change of 1 in the diff value cause a color change or is it more like a change of 10 in the diff? OR is it based on a fraction of a degree C? The image will appear more noisy, of course, if a difference of a tenth of a degree is displayed as a different color. In my images I only display a different color for differences of 1*F, or half degree C when C is displayed.
Oh, and are you using the frameID9 curve to determine temperature now?
But you have to know that I don't average sequenced frames. Instead I take many "first after calibration" frames because this frames have least noise.
I do it like this. If temp range on image is 5 degrees then this 5 degrees get mapped to 1000px color palette which has 1000 different colors. If we say that 1 degree is 40 raw diff then I map 200 raw values to 1000 colors. So each raw value has it's own color.
The program also runs on my Raspberry Pi 2B (900MHz) with a couple caveats:I am very interested to get the Seek working on my Raspberry. I tried the Seek with a Tablet (With Windows 8.1) and the Thermovision, it works... ^-^
It will display the images at 8-9fps if image scaling is set to 1 or 2
It will only record video at full frame rate if scaling is set to 1
For some reason it requires "sudo" on my Pi
At any rate, I can upload it here or if there is enough interest to warrant a new thread like Seekofix & Thermovision have, I can start a new thread & upload the code there. If there is no interest, I'll just go back in my hole...
Thanks for share.
Well, I have the best image quality while using my own calculated Gain and Offset Map, but only if the camera has passed the warm-up and the map was fresh generated.
If the same Camera was started later (after cool down) the map is unusable.
That is because the Pixels shift gain and offset if the internal camera processing was activated.
I tried to get the internal Sensor map while using the "GET_RDAC_ARRAY" command, which should have the same size as the Frame:
IMAGE_BUFFER_SIZE_IN_WORDS = 32448
RDAC_ARRAY_SIZE_IN_WORDS = 32448
Sadly... there was no success. I want to readout the Map after warm-up and reload after a cold start, but it won't work.
Does this sound like it addresses what you are seeing?No, for my images i don't use this line. i tried a little bit with it but get not really better results.
What is the VDAC array? Is that the bias settings used for reading each pixel, by chance? IF so, it would be something that changes at each frameID1. That could be a big help...I think yes... and it clearly change at the startup and only after some Frame ID 1 Images.