openCV:Sobel边缘检测给了我断言错误



我使用的是python openCV。当使用Sobel边缘检测时,我得到以下断言错误:

src.size() == dst.size() && src.channels() == dst.channels() && ((src.depth() == CV_8U && (dst.depth() == CV_16S || dst.depth() == CV_32F)) || (src.depth() == CV_32F && dst.depth() == CV_32F))

我使用CreateImage()创建了dest,它的大小和通道与src相同。此外,src和dest的深度都是IPL_depth_8U。我还尝试使用LoadImageM()加载图像,使常量为CV_*类型,但这没有帮助。

我还碰巧发现IPL_DEPTH_8U == CV_8U就是false

我发现对于新手来说,打开CV:的解决方案有点棘手

src = cv.LoadImageM('src.png', cv.CV_LOAD_IMAGE_GRAYSCALE)
dest = cv.CreateMat(src.height, src.width, cv.CV_16S)
cv.Sobel(src, dest, 1, 1)

需要注意的重要一点是,API参考资料中没有清楚地记录操作所需的图像格式,应该非常小心地注意生成的错误。

相关内容

  • 没有找到相关文章

最新更新