我对OpenCV的cvCanny(...)和它可以处理的 Image 数据类型有一些问题。好吧,也许你们/女孩知道一个解决方案。
我有一个 32 位浮点图像,我想对其执行 cvCanny。问题是 cvCanny 只能处理“IPL_DEPTH_8S”或 U(有符号/无符号短),或者至少这是我怀疑的。OpenCV 手册没有说明它可以处理多少,并且 cv/cvcanny.cpp 中的这一行并没有引起我的希望:
...
if( CV_MAT_TYPE( src->type ) != CV_8UC1 ||
CV_MAT_TYPE( dst->type ) != CV_8UC1 )
CV_ERROR( CV_StsUnsupportedFormat, "" );
...
我拥有的图像是灰度/单通道 float32 位,图像中的值介于 0.0 和 16.0 之间。将我的 float32 转换为 unsigned short 并没有多大帮助,因为这些值会失去它们的精度,而且我会错过 OpenCV 精明的边缘。
你们/女孩碰巧知道我的问题的解决方案吗?(除了使用ITK :) )