7 Stimmen

Wie implementiert man Despeckle in OpenCV?

Wenn die Histogramm-Entzerrung an einem kontrastarmen Bild durchgeführt wird, werden dessen Merkmale besser sichtbar. Die Verwendung von Unschärfefunktionen, die bereits in OpenCV verfügbar sind, ist nicht wünschenswert - ich werde später eine Texterkennung auf dem Bild durchführen und die Buchstaben werden unkenntlich gemacht. Welche Vorverarbeitungstechniken sollten also angewendet werden?

11voto

Michael Koval Punkte 7901

Standard-Weichzeichnungsverfahren, bei denen das Bild mit einem Kernel gefaltet wird (z. B. Gaußscher Weichzeichner, Boxfilter usw.), wirken wie ein Tiefpassfilter und verzerren den hochfrequenten Text. Falls Sie dies noch nicht getan haben, versuchen Sie cv::bilateralFilter() ou cv::medianBlur() . Wenn keiner dieser Algorithmen funktioniert, sollten Sie sich andere Algorithmen zur kantenerhaltenden Glättung .

Stellt man sich das Bild als dreidimensionalen Raum vor, so wird bei der traditionellen Filterung der Wert jedes Pixels durch den gewichteten Durchschnitt aller Filter in einem Kreis um das Pixel herum ersetzt. Die bilaterale Filterung tut dasselbe, verwendet aber eine dreidimensionale Sphäre, deren Mittelpunkt das Pixel ist. Da eine gut definierte Kante wie ein Plateau aussieht, enthält die Kugel nur einen Punkt und der Pixelwert bleibt unverändert. Eine genauere Erläuterung des bilateralen Filters und einige Beispielergebnisse finden Sie hier aquí .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X