Dokumentation von CvStereoBMState zur Disparitätsberechnung mit cv :: StereoBM

9

Die Anwendung des Block-Matching-Algorithmus von Konolige ist in der OpenCV-Dokumentation nicht ausreichend erläutert. Die Parameter von CvStereoBMState beeinflussen die Genauigkeit der von cv :: StereoBM berechneten Disparitäten. Diese Parameter sind jedoch nicht dokumentiert. Ich werde diese Parameter unten auflisten und beschreiben, was ich verstehe. Vielleicht kann jemand eine Beschreibung der Parameter hinzufügen, die unklar sind.

  • preFilterType: Bestimmt, welcher Filter auf das Bild angewendet wird, bevor die Disparitäten berechnet werden. Kann CV_STEREO_BM_XSOBEL (Sobel-Filter) oder CV_STEREO_BM_NORMALIZED_RESPONSE (vielleicht Unterschiede zur mittleren Intensität) sein
  • preFilterSize: Fenstergröße des Vorfilters (width = Höhe des Fensters, negativer Wert)
  • preFilterCap: Clippt die Ausgabe nach [-preFilterCap, preFilterCap]. Was passiert mit den Werten außerhalb des Intervalls?
  • SADWindowSize: Größe der verglichenen Fenster im linken und rechten Bild, wobei die Summe der absoluten Differenzen berechnet wird, um die entsprechenden Pixel zu finden.
  • minDisparity: Die kleinste Disparität, die berücksichtigt wird. Der Standardwert ist Null, sollte auf einen negativen Wert eingestellt werden, wenn negative Disparitäten möglich sind (abhängig vom Winkel zwischen den Kamerasichten und der Entfernung des gemessenen Objekts zu den Kameras).
  • numberOfDisparities: Der Disparitätssuchbereich [minDisparity, minDisparity + numberOfDisparities].
  • textureThreshold: Berechne die Disparität nur an Stellen, an denen die Textur größer als dieser Schwellenwert ist (oder mindestens gleich?). Wie ist die Textur definiert ??? Varianz im Umgebungsfenster ???
  • uniquenessRatio: Zitat aus calib3d.hpp: "akzeptiere die berechnete Disparität d * nur wennSAD (d) & gt; = SAD (d *) (1 + uniquenessRatio / 100.) für jedes d! = d +/- 1 innerhalb des Suchbereichs. "
  • speckleRange: Unsicher.
  • trySmallerWindows: ???
  • roi1, roi2: Berechnen Sie die Disparitäten nur in diesen Regionen? Unsicher.
  • speckleWindowSize: Unsicher.
  • disp12MaxDiff: Unsicher, aber ein Kommentar in calib3d.hpp sagt, dass eine Links-Rechts-Prüfung durchgeführt wird. Rate: Pixel werden vom linken Bild zum rechten Bild und vom rechten Bild zurück zum linken Bild abgeglichen. Die Disparitäten sind nur gültig, wenn der Abstand zwischen dem ursprünglichen linken Pixel und dem rückgeglichenen Pixel kleiner ist als disp12MaxDiff.
Simon Oelmann 25.03.2014, 09:31
quelle

1 Antwort

3

speckleWindowSize und speckleRange sind Parameter für die Funktion cv :: filterSpeckles. Werfen Sie einen Blick auf die Dokumentation von OpenCV. cv :: filterSpeckles wird verwendet, um die Disparitätskarte nachzubearbeiten. Sie ersetzt Blobs mit ähnlichen Disparitäten (der Unterschied zweier benachbarter Werte speckleRange nicht überschreitet), deren Größe kleiner oder gleich speckleWindowSize ist (die Anzahl der den Blob bildenden Pixel), durch den ungültigen Disparitätswert (entweder short -16 oder float -1.f ).

    
Tobias 10.02.2015 15:15
quelle

Tags und Links