Ask Your Question

canny edge detection for 32 bit floats

asked 2014-03-03 10:19:38 -0500

HugoRune gravatar image

updated 2020-10-24 13:57:08 -0500

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?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2016-11-07 22:41:20 -0500

Tetragramm gravatar image

It would require a significant amount of effort, but you could probably edit the source to use floats instead. It's pretty clearly written, and if you just delete the SMID parts, it might not be too bad. I didn't look all the way through, but it should be feasible.

edit flag offensive delete link more

Question Tools


Asked: 2014-03-03 10:19:38 -0500

Seen: 1,164 times

Last updated: Nov 07 '16