cvSobel具有16位灰度图像

时间:2012-09-04 12:58:06

标签: c opencv

我有一个10位灰度图像,我喜欢使用cvSobel功能。如果它可以接受16位灰度图像,则文档不清楚。当我尝试使这项工作时,我从OpenCV得到一个例外。

在我查看函数的VC ++中,这就是我所看到的。

 CVAPI(void) cvSobel( const CvArr* src, CvArr* dst,
            int xorder, int yorder,
            int aperture_size CV_DEFAULT(3));

我试图制作目标32F但仍然崩溃。

1 个答案:

答案 0 :(得分:2)

它说here

  

为避免溢出,该功能需要16位目标图像   源图像是8位。结果可以转换回8位   使用cvConvertScale或cvConvertScaleAbs函数。除了8位   该函数可以处理32位浮点图像。都   源和目标必须是相同大小的单通道图像或   投资回报率。

因此,您可以将源转换为8位,然后将目标声明为16位。

如果这不起作用,如果您可以发布代码的特定部分也会有所帮助。