我正在使用OpenCVSharp运行一些校准测试,但似乎无法使FindCirclesGrid正常工作,在调用FindCirclesGrid时出现了意外的AccessViolationException。
我不确定我可能会做错什么,因为前两行与示例中的代码完全相同,中心未初始化,因为它是输出参数,传递给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());
最佳答案
我在github上报告了一个错误。到目前为止,它似乎已修复,但我无法对其进行测试。
https://github.com/shimat/opencvsharp/issues/106