That is 28 frames in total (14 calibration and 14 real images).
Each new frame is 4.5 degrees to the right.
Thinking of using steppers but in different setup: 2 axis x and y controlled by simple motors with IR encoders to count number of turns and make very small less than 1mm movements by such created rectangle area
I think good idea will be add 3 hot point sources to the scene to augument it and have reference points to fine align those many frames into one while we have hot spots small reference points.
Anyway got the same error as @cynafab when tried to look into your calibration frames - dropbox is fine and it looks like ziped 28 frames is about 1.4MB, so around 51KB per raw Seek sensor frame-16bit PNGs compressed with non default maximum 9 level are about 57KB, so I'm using this method below when saving raw Seek frames.
Tip in OpenCV PNG write of 16bit gray images is to change default compression level from 3 to 9 and than each Seek sensor frame is only about 50KB per frame, so you could simply post those calibration and image frames in two posts without any problems even there.
Mat img(156,208,CV_16U );
...
// PNG9
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9);
...
imwrite(fout, img, compression_params );
In similar fashion you will be able write in OpenCV jpeg files with forced 100% quality, so this tip with 3rd parameter in OpenCV
imwrite is worth to add those 3 lines of code to your C++ app
We could discuss different debanding methods, while I'm also looking to improve my method and after finishing thermal scale management and adding rainbow thermal LUT i'm working on, so it could be nice to work on the same Seek raw sensor test data and discuss and compare results
Edit: Quick check of those dead looking pixels on your calibration frames showed more, but other Seek devices have more than 100 sometimes, so 79 there is not a big supprise and it would be interesting to see how it will look in other ambient temperatures, etc -if it differs somehow:
Run this test on most of those calibration frames not only this last, but on first it is the same amount:
../img2pat: Seek Thermal raw sensor image patterns written to: pat.frenky_osc_motor.raw.000000001.0x1.png bad pattern pixels: 79/32136 (0.246 %)