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

Xol*_*lve 5 python opencv edge-detection

我正在使用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))
Run Code Online (Sandbox Code Playgroud)

我创建dest使用CreateImage()它,它具有相同的大小和通道src.src和dest的深度也是IPL_DEPTH_8U.我也尝试使用加载图像,LoadImageM()以便常量是实物,CV_*但没有帮助.

我也碰巧发现那IPL_DEPTH_8U == CV_8Ufalse.

Xol*_*lve 5

我发现解决方案对初学者openCV来说有点棘手:

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)
Run Code Online (Sandbox Code Playgroud)

需要注意的重要一点是,API引用中没有明确记录操作所需的图像格式,应该非常小心地注意生成的错误.