2016-03-28 11 views
0

Ich verwende derzeit die folgende Funktion, um Rauschen von zwei Bildern der Größe (240x720) zu entfernen. Ich bin gerade dabei, dies auf meinem Computer zu berechnen, möchte dies aber in Echtzeit umsetzen. Auf meinem Computer führt die Funktion jedoch zu erheblichen Verzögerungen für das Programm. Gibt es eine Alternative, um Rauschen aus einem Bild zu entfernen, das in Echtzeit funktionieren könnte? Gaußsche Unschärfe vielleicht?Alternative zu OpenCV fastNlMeansDenoising für Echtzeit-Anwendung?

fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21); 

Antwort

0

fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3, 
    int templateWindowSize=7, int searchWindowSize=21); 

Wenn die templateWindowSize 1 nähert, wird der Filter ein Feld bilateral Filter eine Funktion gegeben.

Wenn sich der Begriff h unendlich nähert, wird der Filter zu einem Box-Unschärfe-Filter.

Für beide zwei ist die Implementierung erschöpfend.

Eine einfache Alternative ist, zuerst die beiden optimierten Spezialfälle zu testen: cv::boxFilter und cv::bilateralBlur.

+0

Box bilateralen Filter scheint gut zu arbeiten, während die Kanten von Objekten innerhalb des Bildes zu halten. Vielen Dank. –

0

Eine Möglichkeit zu prüfen, könnte die CUDA-Version von fastNIMeansDenoising verwenden, da es erhebliche Beschleunigung bietet vorausgesetzt, Sie eine anständige GPU haben (gilt für die meisten OpenCV Funktionalität im Allgemeinen). Abgesehen davon, hängt es davon ab, mit welchem ​​Geräusch Sie es zu tun haben, aber wenn es sich beispielsweise um Salz- und Pfeffergeräusche handelt, liefert die Verwendung der mittleren Unschärfefunktion im Allgemeinen gute Ergebnisse. Gaußsche Unschärfe ist eine weitere gute Option, wenn Ihr Geräusch allgemeiner ist.

Verwandte Themen