Ich implementiere ein Fußgänger-Erkennungssystem mit Emgu CV-Bibliothek. Die Methode find Gibt die Anzahl der Ergebnisse zurück, die über die Methode ermittelt wurden.Wie bekomme ich die Anzahl der Ergebnisse, die durch Find-Methode in EMGU CV Fußgängererkennung C#
public static Rectangle[] findPedestrian(Image<Bgr, Byte> image)
{
Stopwatch stopwatch;
Rectangle[] regions;
if (CudaInvoke.HasCuda)
{
using (CudaHOG des = new CudaHOG(new Size(64, 128), new Size(16, 16), new Size(8, 8), new Size(8, 8)))
{
des.SetSVMDetector(des.GetDefaultPeopleDetector());
stopwatch = Stopwatch.StartNew();
using (GpuMat cudaBgr = new GpuMat(image))
using (GpuMat cudaBgra = new GpuMat())
using (VectorOfRect vr = new VectorOfRect())
{
CudaInvoke.CvtColor(cudaBgr, cudaBgra, ColorConversion.Bgr2Bgra);
des.DetectMultiScale(cudaBgra, vr);
regions = vr.ToArray();
}
}
}
else
{
using (HOGDescriptor des = new HOGDescriptor())
{
des.SetSVMDetector(HOGDescriptor.GetDefaultPeopleDetector());
stopwatch = Stopwatch.StartNew();
MCvObjectDetection[] results = des.DetectMultiScale(image);
regions = new Rectangle[results.Length];
for (int i = 0; i < results.Length; i++)
regions[i] = results[i].Rect;
stopwatch.Stop();
}
}
//processingTime = stopwatch.ElapsedMilliseconds;
return regions;
}
Und hier erzeugt es die Rechtecke entsprechend den Ergebnissen, die durch den Prozess senden. Ich möchte die Anzahl der Ergebnisse zählen, die durch die Methode zurückgegeben werden. Ich dachte daran, es aus der Anzahl der Iterationen dieser foreach-Schleife zu bekommen.
private Image<Bgr, Byte> imagingPedestrian(Image<Bgr, Byte> image)
{
System.Drawing.Rectangle[] results = pedestrianDetection.findPedestrian(image);
foreach (Rectangle rect in results)
{
CvInvoke.Rectangle(image, rect, new Bgr(Color.Red).MCvScalar);
}
return image;
}
Kann ich einen Weg kennen, um dieses Ergebnis zu erhalten. Danke im Voraus.
erhalten, wenn ich richtig verstanden habe, results.count oder results.length sollte funktionieren –
Ich bin verwirrt durch den Titel und die Frage. Im Titel geht es darum zu messen, wie lange etwas dauert, aber die Frage scheint zu sein, wie oft eine Funktion aufgerufen wird. Welches ist es? – Neil
Der Titel stimmt nicht mit der Frage überein. – chris579