将foreach(MCvAvgComp ...)转换为foreach for rect

时间:2015-10-30 17:15:25

标签: c# emgucv

我使用了这段代码:

rect = faces.DetectMultiScale(src.Clone(), 1.1, 3, new Size(80, 80));

代替:

MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(face,1.2,10,Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,new Size(20, 20));

然后我想使用此代码:

foreach (MCvAvgComp f in facesDetected[0])

当我使用rect时,如何将foreach转换为我的新代码样式?

1 个答案:

答案 0 :(得分:1)

我真的不明白你的问题。您想使用Rectangle代替MCvAvgComp吗?

根据MCvAvgComp的文档,您可以使用rect字段:

foreach (MCvAvgComp f in facesDetected[0])
{
   Rectangle rect = f.rect;
   // ...
}

或者,使用LINQ:

IEnumerable<Rectangle> rects = facesDetected[0].Select(f => f.rect);
foreach (Rectangle rect in rects)
{
   // ...
}