我正在尝试将我的Python代码转换为C#。我在VisualStudio2019中使用NumSharp和OpenCvSharp。python代码工作时没有错误,但我正在讨论代码的这一部分:
var kernel = np.ones((9, 9), np.uint8);
Cv2.MorphologyEx(frame2, opening_ori, MorphTypes.Open, kernel);错误在
kerner
:不能从NumSharp.NDArray转换为OpenCvSharp.InputArray
Python代码是:
kernel = np.ones((9, 9), np.uint8)
opening_ori = cv2.morphologyEx(frame2, cv2.MORPH_OPEN, kernel)对此,我将不胜感激。谢谢。
发布于 2020-10-08 16:19:13
您的内核需要类型为InputArray (在OpenCV中有许多隐式转换,例如来自Mat或MatExpr)。对于一些简单的东西,比如1s的9x9矩阵,您可以使用OpenCV函数创建一个矩阵。
像这样的东西应该能起作用(未经测试):
InputArray kernel = Mat.Ones(9, 9, MatType.CV_8UC);
Cv2.MorphologyEx(frame2, opening_ori, MorphTypes.Open, kernel);注意:对于更复杂的编组,通常可以从一种类型获取原始内存数组,并使用该数组创建Mat。
https://stackoverflow.com/questions/64265346
复制相似问题