【发布时间】:2015-05-02 16:12:34
【问题描述】:
我正在使用 OpenCVSharp 运行一些校准测试,但我似乎无法让 FindCirclesGrid 工作,我在调用 FindCirclesGrid 时遇到了一个非常意外的 AccessViolationException。
我不确定我做错了什么,因为前两行与示例中的几乎完全相同,centers 未初始化,因为它是一个输出参数,并且传递给 OpenCV 的所有内容似乎都已初始化OpenCVSharp 的包装函数。
void test()
{
Mat im = Cv2.ImRead(@"path_to_my_file.jpg");
Size patternsize = new Size(11, 4);
Point2f[] centers;
var f = Cv2.FindCirclesGrid(im, patternsize, out centers, FindCirclesGridFlag.AsymmetricGrid);
}
我正在使用直接来自 nuget 的最新 OpenCVSharp
Edit1:我忘了在问题中提到这一点,但我已经尝试在 FindCirclesGrid 之后添加箔纸,以确保在它们应该之前不会错误地收集对象,这没有改变。此外,在调试和发布时,该错误也会发生。
Console.Writeline(im.ToString());
Console.Writeline(patternsize.ToString());
Console.Writeline(centers.ToString());
Console.Writeline(f.ToString());
【问题讨论】:
-
因为 NativeMethods.calib3d_findCirclesGrid_InputArray(...) 被称为可能具有非托管代码属性的东西?
标签: c# opencv access-violation opencvsharp