这是一个令人尴尬的愚蠢问题,但我找不到课程。我正在研究一种运动跟踪应用程序来计算通过建筑物的汽车并记下它们的颜色。我正在使用EmguCV,一个围绕OpenCV的.Net托管包装。
在EmguCV示例中有一个应用程序Emgu.CV.Example\VideoSurveilance
,它对我的应用程序来说是一个很好的开始,但我想查看底层的OpenCV类,看看它们使用的参数。
以下是EmguCV示例代码中的一个简单行:
_tracker = new BlobTrackerAuto<Bgr>();
然后:
_tracker.Process(frame, forgroundMask);
foreach (MCvBlob blob in _tracker)
{
将代码追溯回the EmguCV source-code,我们在EmguCV核心项目的Emgu.CV.VideoSurveillance
命名空间中找到以下代码:
public void Process(Image<TColor, Byte> currentFrame, Image<Gray, Byte> foregroundMask)
{
CvInvoke.CvBlobTrackerAutoProcess(_ptr, currentFrame.Ptr, foregroundMask == null ? IntPtr.Zero : foregroundMask.Ptr);
}
[DllImport(CvInvoke.EXTERN_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)]
internal extern static void CvBlobTrackerAutoProcess(IntPtr tracker, IntPtr pImg, IntPtr pMask);
所以the OpenCV API reference中的某个地方我应该能够找到像CvBlobTrackerAutoProcess
这样的方法。但我根本无法找到与BlobTrackerAuto
有关的任何内容。
所以这是一个冗长的方式来询问OpenCV API层次结构中BlobTracker类的位置?
答案 0 :(得分:1)
相应的代码是@ https://github.com/Itseez/opencv/blob/master/modules/legacy/src/blobtrackingauto.cpp#L206。它似乎没有可搜索/列在文档中。我建议你只需下载代码并查看。实施了许多类,可能并非Emgu都会公开。
答案 1 :(得分:1)
CvBlobTrackerAuto在遗留模块中,但我看不到CvBlobTrackerAutoProcess。这个问题有点相关:Why is the CvBlobDetector in openCV in the legacy lib?