gpt4 book ai didi

c# - Emgu.CV,CvBlob.BoundingBox抛出System.AccessViolationException

转载 作者:行者123 更新时间:2023-12-02 17:51:41 29 4
gpt4 key购买 nike

我正在使用Emgu.CV(OpenCV)在图像中查找增量,但有时会出现访问冲突异常,导致我的应用崩溃。

深入调试后,我发现(blobs.Values):

List<CvBlob> listOfBlobs = blobs.Values.ToList();

返回1733项,当我执行以下操作时:

但是当遍历列表时,我得到了EXCEPTION:
 if (resultedRectangles[j].Contains(listOfBlobs[i].BoundingBox))

我检查并发现异常发生在: i = 418 :

+BoundingBox '(new System.Collections.Generic.Mscorlib_CollectionDebugView(listOfBlobs)).Items[418].BoundingBox' threw an exception of type 'System.AccessViolationException' System.Drawing.Rectangle {System.AccessViolationException}



如我所见,列表中的最后一个有效值是417。

我有两个问题:
1.为什么 blobs.Values.ToList();返回此类损坏的数据?
2.如何在访问值之前检查该值以防止 System.AccessViolationException

最佳答案

您的流程中是否有多个线程?如果有多个线程试图初始化列表,则列表可能会损坏。

此异常更特定于与内存相关的问题,除非所有代码都在您的控制范围内,否则您将很难调试它。以下链接可能会有所帮助。

http://msdn.microsoft.com/en-us/library/system.accessviolationexception(v=vs.110).aspx

我也陷入了同样的错误。

关于c# - Emgu.CV,CvBlob.BoundingBox抛出System.AccessViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19782964/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com