Entfernen Sie Hintergrundtext und Rauschen aus einem Bild mithilfe der Bildverarbeitung mit OpenCVPython

Python-Programme
Guest
 Entfernen Sie Hintergrundtext und Rauschen aus einem Bild mithilfe der Bildverarbeitung mit OpenCV

Post by Guest »

Ich habe diese Bilder

Image


Image

Wofür ich den Text im entfernen möchte Hintergrund. Es sollten nur die Captcha-Zeichen übrig bleiben (d. h. K6PwKA, YabVzu). Die Aufgabe besteht darin, diese Zeichen später mit Tesseract zu identifizieren.

Das habe ich versucht, aber es liefert keine sehr gute Genauigkeit.

Code: Select all

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r"C:\Users\HPO2KOR\AppData\Local\Tesseract-OCR\tesseract.exe"
img = cv2.imread("untitled.png")
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray_filtered = cv2.inRange(gray_image, 0, 75)
cv2.imwrite("cleaned.png", gray_filtered)
Wie kann ich das Gleiche verbessern?

Hinweis:
Ich habe alle Vorschläge ausprobiert, die ich für diese Frage bekam, aber keiner davon hat für mich funktioniert.

BEARBEITEN:
Gemäß Elias, ich habe versucht, die Farbe des Captcha-Textes mit Photoshop zu finden, indem ich ihn in Graustufen konvertiert habe Es stellte sich heraus, dass es irgendwo zwischen [100, 105] lag. Anschließend bewerte ich das Bild anhand dieses Bereichs. Aber das Ergebnis, das ich mit Tesseract erhalten habe, lieferte kein zufriedenstellendes Ergebnis.

Code: Select all

gray_filtered = cv2.inRange(gray_image, 100, 105)
cv2.imwrite("cleaned.png", gray_filtered)
gray_inv = ~gray_filtered
cv2.imwrite("cleaned.png", gray_inv)
data = pytesseract.image_to_string(gray_inv, lang='eng')
Ausgabe:

Code: Select all

'KEP wKA'
Ergebnis:

[img]https://i .sstatic.net/AqYeO.png[/img]


BEARBEITEN 2:

Code: Select all

def get_text(img_name):
lower = (100, 100, 100)
upper = (104, 104, 104)
img = cv2.imread(img_name)
img_rgb_inrange = cv2.inRange(img, lower, upper)
neg_rgb_image = ~img_rgb_inrange
cv2.imwrite('neg_img_rgb_inrange.png', neg_rgb_image)
data = pytesseract.image_to_string(neg_rgb_image, lang='eng')
return data
ergibt:

[img]https://i .sstatic.net/rSrSz.png[/img]


und der Text als

Code: Select all

GXuMuUZ
Gibt es eine Möglichkeit, es etwas weicher zu machen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post