[英]Can not convert from NumSharp.NDArray to OpenCvSharp.InputArray
我正在尝试将我的 Python 代码转换为 C#。我在 Visual Studio 2019 中使用 NumSharp 和 OpenCvSharp。python 代码可以正常工作,但我正在使用这部分代码旅行:
var kernel = np.ones((9, 9), np.uint8);
Cv2.MorphologyEx(frame2, opening_ori, MorphTypes.Open, kernel);
错误在
内核
:无法从 NumSharp.NDArray 转换为 OpenCvSharp.InputArray
Python 代码为:
kernel = np.ones((9, 9), np.uint8)
opening_ori = cv2.morphologyEx(frame2, cv2.MORPH_OPEN, kernel)
我将不胜感激任何帮助。 谢谢。
您的 kernel 需要是 InputArray 类型(OpenCV 中有许多隐式转换,例如来自 Mat 或 MatExpr)。 对于像 1 的 9x9 矩阵这样简单的东西,您可以使用 OpenCV 函数来创建一个。
这样的事情应该有效(未经测试):
InputArray kernel = Mat.Ones(9, 9, MatType.CV_8UC);
Cv2.MorphologyEx(frame2, opening_ori, MorphTypes.Open, kernel);
注意:对于更复杂的编组,您通常可以从一种类型中获取原始 memory 数组,并使用它来创建 Mat。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.