So ermitteln Sie die durchschnittliche Intensität der OpenCV-Kontur in Echtzeit

Ich habe ein Bild mit ca. 50 bis 100 kleinen Konturen. Ich möchte die durchschnittliche Intensität [1] jeder dieser Konturen in Echtzeit [2] ermitteln. Einige der Möglichkeiten, die ich mir vorstellen konnte, waren

Kontur mit der Option GEFÜLLT für jede Kontur zeichnen; Verwenden Sie jedes Bild als Maske über dem Originalbild, um den Durchschnitt zu ermitteln. Ich gehe aber davon aus, dass diese Methode auf den ersten Blick nicht in Echtzeit abläuft.

Studieren Sie die OpenCV-Implementierung vondrawContour Funktionieren Sie mit der Option FILLED und greifen Sie auf die von der Kontur eingeschlossenen Pixel auf die gleiche Weise zu. Aber der Code scheint wirklich komplex und nicht leicht verständlich zu sein.

Berechnen Sie das Rechteck mit der minimalen Fläche, suchen Sie alle Punkte im Rechteck mithilfe der Transformation und ermitteln Sie den Durchschnitt der Punkte, die nicht Null sind. Auch hier scheint komplexer Ansatz.

Gibt es eine einfachere und effizientere Möglichkeit, dies zu tun?

[1] Durchschnitt aller von den nicht überlappenden Konturen eingeschlossenen Pixelintensitäten

[2] Ungefähr 25 (960 x 480) Pixelbilder pro Sekunde auf einem 2,66 GHz-Desktop-PC

Antworten auf die Frage(1)

Ihre Antwort auf die Frage