如何使OpenCV Detect方法线程安全?

时间:2011-08-11 19:31:48

标签: c# .net opencv

我调用以下OpenCV方法(Emgu CV包装器),它同时检测几个线程中的面:

IntPtr objects = CvInvoke.cvHaarDetectObjects(
                   img.Ptr,
                   haarObj.Ptr,
                   stor.Ptr,
                   scaleFactor,
                   minNeighbors,
                   flag,
                   minSize);

我收到AccessViolationException。标准的.NET锁在这里是不可接受的,因为这个方法几乎占用了所有的线程生命周期。任何想法如何使这个方法同时工作?

1 个答案:

答案 0 :(得分:4)

解决方案是在OpenCV中使用内部多线程。为了实现这一点,必须使用Intel TBB构建OpenCV。然后,当调用Detect方法时,它会在内部使用多个线程。