5

私は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))

dest私はusingを作成しCreateImage()、それはと同じサイズとチャネルを持っていますsrc。また、srcとdestの両方の深さはIPL_DEPTH_8Uです。LoadImageM()また、定数が親切になるようにを使用して画像をロードしようとしましCV_*たが、それは役に立ちませんでした。

IPL_DEPTH_8U == CV_8U私もたまたまそれを見つけましたfalse

4

1 に答える 1

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)

注意すべき重要な点は、操作に必要な画像形式が API リファレンスに明確に記載されていないため、生成されたエラーに細心の注意を払う必要があるということです。

于 2011-06-03T11:20:57.573 に答える