trainbot icon indicating copy to clipboard operation
trainbot copied to clipboard

Use image stacking instead of gluing slices together

Open clonejo opened this issue 2 years ago • 11 comments

Currently, trainbot pieces slices of the moved train together. This works well when within the used crop rectangle the view is unobstructed, and the exposure/lighting is similar in the X axis.

Unfortunately, i have to deal with some obstruction from foliage: train_20231125_120357 38_+01 00

One can kinda reduce this by narrowing the crop rectangle, but i am already quite limited.

But since we have each piece of the train exposed at least twice (with the current movement detection code, even three times), we can stack them together. Here is an example using a better camera, manual stacking of three frames in GIMP, and then enfuse for stacking: enfuse compared to a single frame: manuall-stacked-637

We could even pick out the parts that don't change between frames, and create a non-rectangular mask for picking only the unobstructed parts.

Possible implementation: We pretty much have all the pieces already, we'll just have to save each frame placed into a separate otherwise transparent image file, and then run enfuse over all the files.

clonejo avatar Nov 25 '23 18:11 clonejo

This also means we get more exposure for each bit of train, and thus reduce noise.

clonejo avatar Nov 25 '23 21:11 clonejo

Indeed, we actually have enough raw images to get rid of obstructions in your specific case. IMO this is however not true in the general case.

Anyways, feel free to experiment with this and to submit a PR! I will not implement it.

jo-m avatar Nov 25 '23 21:11 jo-m

This also means we get more exposure for each bit of train, and thus reduce noise.

Noise yes, blur no.

jo-m avatar Nov 25 '23 21:11 jo-m

Hmm, I also have problems with obstructions but rather than a whole bunch of extra DSP my thinking was maybe just somehow use offset boxes that get lined back up based on the appropriate time delay from train speed:

Screen Shot 2023-12-12 at 9 29 36 PM

I wonder if that would be a bit easier to work into the existing logic and/or a little bit more generalizable to various situations?

natevw avatar Dec 13 '23 05:12 natevw

It should be easy enough to adapt the stitching logic so that it can be chosen from which image area the patches are taken for stitching.

jo-m avatar Dec 13 '23 19:12 jo-m