canny edge detection for 32 bit floats
I want to detect edges in a range image. The image contains distance values from 0 meters to 2,5 meters as 32 floats.
Canny edge detection works very well for my images. However the cvCanny method only accepts single-channel 8bit input images.
Converting the distances to 8bit results in a resolution of about 1cm, which is far too low. The original images have a resolution of below 1mm
I can generate different 8bit images that only cover a small part of the full range each, and run canny on all of them, but that is slow and cumbersome, and introduces artifact edges.
Is there a way to run canny edge detection on the full range of the input data?