ArucoDetector detectMarkers 8-bit limitation reason

Hello, Is there a specific reason why the detectMarkers and adaptiveThreshold functions are limited to 8-bit integer inputs only? Is there any theoretical reason to not do it for float32 (or uint16, etc.), or is it simply that it wasn’t implemented? If it’s just a matter of implementation, wouldn’t a float32 input theoretically get better performance if your source image bit depth was greater than 8-bit?
Thanks

ArUCo markers are generally black and white, and you only need one bit for that. I’ll pretend I understand your question and suggest just converting your floating point mask to uint8 and calling it a day.

except, cameras aren’t 1-bit, and lighting is rarely perfect.

detection of markers isn’t performed on masks. if you at any point turn your camera picture into a “mask”, and present that to the aruco detection, you’ve just shot yourself in the foot.

the image processing preceding (included in) actual detection has to work on a camera picture, not “masks”. the detection involves thresholding that compensates for differences in exposure, also in the same picture.

one could desire to preserve as much as possible of the data from the sensor. one could desire higher dynamic range than provided by regular old camera types.

in some edge cases, that could provide an advantage in making markers detectable.

usually, there’s little to gain. usually, the solution to such problems is to correct the lighting and camera settings.