【发布时间】:2010-12-08 11:25:32
【问题描述】:
我对@987654321@s cvCanny(...) 及其可以处理的图像数据类型有一些问题。好吧,也许你们知道解决方案。
我有一个 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 :))
【问题讨论】:
标签: c++ image-processing opencv edge-detection itk