我有一个10位灰度图像,我喜欢使用cvSobel功能。如果它可以接受16位灰度图像,则文档不清楚。当我尝试使这项工作时,我从OpenCV得到一个例外。
在我查看函数的VC ++中,这就是我所看到的。
CVAPI(void) cvSobel( const CvArr* src, CvArr* dst,
int xorder, int yorder,
int aperture_size CV_DEFAULT(3));
我试图制作目标32F但仍然崩溃。
答案 0 :(得分:2)
它说here:
为避免溢出,该功能需要16位目标图像 源图像是8位。结果可以转换回8位 使用cvConvertScale或cvConvertScaleAbs函数。除了8位 该函数可以处理32位浮点图像。都 源和目标必须是相同大小的单通道图像或 投资回报率。
因此,您可以将源转换为8位,然后将目标声明为16位。
如果这不起作用,如果您可以发布代码的特定部分也会有所帮助。