Transkripte
1. ÜBERSICHT: Hallo! In dieser Klasse erstellen Sie einen einfachen Dokumentenscanner mit der OpenCV-Bibliothek und Python. Dies kann
beispielsweise nützlich sein, um
Seiten in einem Buch zu scannen. Mein Name ist Yassin und ich
werde Ihr Lehrer
in diesem Kurs sein. Ich programmiere
seit 2019. Und ich bin der Autor des Vlogs. Wiederhole nicht yourself.org,
wo ich jeden
Monat
über 5.000 Entwickler habe jeden
Monat
über 5.000 Entwickler , um
mehr über Python,
maschinelles Lernen
und Computer Vision zu erfahren . unsere Projekte zu erstellen, müssen
wir nun das Eingabebild in
eine Graustufe konvertieren und die Kanten im Bild mithilfe
des
Canny-Kantendetektors
finden . Als nächstes können wir diese Kanten verwenden, um die Konturen auf dem Bild zu finden. Und von dort aus wählen wir nur die Konturen
des Dokuments aus. Und schließlich können wir die so genannte
Arbeitsperspektive
anwenden , um die
Top-Down-Ansicht des Dokuments zu erhalten . Schauen Sie
sich
die Kursbeschreibung an
und ich freue mich darauf, Sie darin
zu sehen.
2. Installation: Das erste, was wir tun
müssen, ist die Installation der erforderlichen Pakete, die
für die Bildverarbeitung nützlich sind. Also werden wir
OpenCV und das Nicht-Pi installieren. Beginnen wir zuerst mit OpenCV, öffnen ein neues
Terminalfenster und führen den Befehl pip aus,
installiere OpenCV polygon. In meinem Fall können Sie sehen, dass ich Open CV bereits installiert
habe. Anforderung, bereits erfüllt. Aber ich möchte nur
eine virtuelle Umgebung schaffen. So kann das Trio sehen, was Sie
erhalten, wenn Sie es installiert haben. Virtuelle Umgebung, oder Sie
können am Stromnetz hängen bleiben. Jetzt installieren wir Open CV. Cv. Hier können Sie sehen, dass
OpenCV zusammen mit einem offenen CV
ohne Pipe erfolgreich
installiert wurde . Also muss ich nicht installieren. Hier. Sie können sehen, dass
ich CV 4.54.5 geöffnet habe, Umkehrung von OpenCV und die
Division von Nicht-Pi ist 1.22.1. Wir müssen
andere Pakete installieren. Das erste ist, dass ich ein
Mutagenen-Paket mit habe, und wir brauchen auch eine Seitenleiste, die für den Ionic-Stil benötigt wird. Hier sehen Sie, dass die
PI die Version 0.51.4 haben. Wir werden wissen, dass der
Roman Soapy die Version 1.37 ist.
3. Das Bild laden: Also importieren wir Open CV und können unseren
Image-Lebenslauf bis Punkt lesen. Und lassen Sie uns auch die Größe unseres Bildes ändern. Also sagen wir CV-Tool,
Los, Bildgröße ändern. Hier sagen wir
Breite und Höhe. Der Fortschritt, wir definieren
unsere Breite und Höhe. Sagen wir also 600 für die
Breite und 800 für die Höhe. Definieren wir auch grüne Farbe. Wir können also sagen,
dass Grün 2550 entspricht. Nun der Bildpunkt, wir wollen dieses
Haar verwenden und wir wollen hier die Ansicht
von oben nach unten dieses Dokuments
erhalten.
4. Bildverarbeitung: Jetzt können wir mit der
Verarbeitung unseres Bildes beginnen. Also werden wir damit beginnen,
es in Graustufen umzuwandeln. Dann wenden wir
eine Gaußsche Unschärfe an. Wir können schreiben, gut. I entspricht CV zu Serie D Farbbild, CB2, Farbe BGR zu Grau. Und hier werden wir
CB2 Gaußsche Unschärfe lesen. Und schließlich können wir
die Kanten mit dem
Canny-Detektor erkennen . Also sehen wir V2 dot
Carney, unser Bild. Und sagen wir 75 für den ersten Schwellenwert und 200
für den zweiten Schwellenwert. Jetzt können wir
unser Bild CB2 Punkt anzeigen, bin
ich mir sicher, Nachricht. Und wir können das Bild auch
anzeigen. Also dann gehen wir, hier ist unser
Originalbild und unser Bild.
5. Mit den Rändern findest du alle Konturen: Jetzt können wir mit
dem nächsten Schritt fortfahren, nämlich die Konturen zu finden und
herauszuziehen. Wir können also die CB2-Punktfindungsfunktion verwenden , um die Konturen zu
finden. Wir können also Konturen
zu CB2-Punktkonturen sagen. Und hier stellen wir die
Grafschaft oder das Bild zur Verfügung. Hier für den Abrufmodus können
wir CV zwei
Punkt drei Listen sagen. Und für die
Näherungsmethode können
wir Jane-Produktsymbol sagen. Jetzt können wir unser
Bild anzeigen und dann
die Konturen herausziehen und dann unser Bild
mit den Konturen erneut anzeigen. Wir können also CV zur
Notiz sagen, ich bin mir sicher Bild. Und hier werden wir die Konturen
zeichnen. Wir stellen unser Bild, unsere Konturen und das
Minusbild , um alles
auf den Konturen zu tun. Dann können Sie
die grüne Farbe verwenden. Und drei für die Dicke. Mal sehen, was wir bisher haben. Das ist also unser Bild und das die Konturen, nicht wir haben
einen Gentleman auf dem Bild.
6. Wähle nur die Ränder des Dokuments aus: Als nächstes müssen wir die
größte Kontur im Bild finden. Also diese Kontur hier, denn das wird unser Dokument
sein. Was wir also tun können, ist
unsere Konturen nach Fläche vom
größten zum kleinsten zu sortieren . Wir können die sortierte Funktion verwenden, die eine eingebaute
Python-Funktion ist. Also können wir hier schreiben, Konturen sind gleich sortiert. Hier wollen wir also unsere
Konturen sortieren und wir können
den Bereich unserer Konturen
mit der CV 2D
Konturflächenfunktion spezifizieren den Bereich unserer Konturen
mit der . Und wir wollen sie auch
vom größten zum kleinsten sortieren. Also können wir hier schreiben, reverse ist gleich true. In dieser Liste haben
wir also zuerst die
größten Konturen als die kleinste am Ende der Liste. Als nächstes können wir also diese
Liste von Konturen durchgehen. Und dann werden wir
Partner in jeder Kontur sehen. Wenn wir dann eine
Kontur mit vier Punkten gefunden haben, können
wir davon ausgehen, dass wir
unser Dokument gefunden haben , damit wir aus der Schleife
ausbrechen können. Also können wir
hier für Kontur schreiben. Konturen. Um nun die Kontur anzunähern, können
wir zuerst
ihren Umfang mit
dem CV an die
Bogenlängenfunktion berechnen . So können wir schreiben, dass der Umfang gleich c v2 Punkt
r.
ist . Und hier
geben wir unsere Kontur an. Und je weiter das zweite
Argument, das wir als wahr bezeichnen werden, um anzuzeigen, dass die
Kontur geschlossen ist. Jetzt können wir
unsere Kontur mit Hilfe
der CV an die ca.
Poly D p-Funktion annähern unsere Kontur mit Hilfe
der CV an die ca. . So können wir flux gleich
Cv in die ungefähre Pauly D p schreiben . Und hier geben wir unsere Kontur an. Dann müssen wir die
Näherungsgenauigkeit angeben. Wir können das 0,05 fache des
Umfangs der Kontur sagen. Und der Header. Wir können „wahr“ sagen, um anzuzeigen
, dass die Kontur geschlossen ist. Jetzt können wir überprüfen, ob die ungefähre Kontur vier Punkte
hat. Wir können also schreiben, ob die Länge
unserer Annäherung gleich vier
ist. Was wir also tun können, ist
unsere Kontur in einer Variablen zu speichern. Nehmen wir an, die Konturen
des Dokuments entsprechen
unserer Annäherung. Und jetzt können wir
aus der Schleife ausbrechen.
7. Wende Warp an, um die Oben auf das Dokument zu erhalten: Jetzt sind wir bereit,
die Top-Down-Ansicht
unseres Dokuments zu erhalten . Dafür haben wir also die
Vier-Punkte-Transformationsfunktion aus dem Paket IM-Mutanten. Also müssen wir zuerst unsere Funktion
importieren. Wir können also aus der Perspektive der
Utils sagen, vier Punkte mal eins. Jetzt müssen Sie sich nicht mehr viele Gedanken
über diese Funktion machen. Was Sie wissen müssen, ist, dass ein Bild und
eine Kontur als Eingabe verwendet und die
Top-Down-Ansicht des Bildes zurückgegeben wird. Also können wir hier schreiben, Warped entspricht vier transformierten
Punkten. Und hier geben wir
unser Originalbild weiter, aber hier haben wir bereits
Genom auf unserem Bild. Was wir also tun können, ist eine Kopie unseres Bildes zu
machen. Wir können also sagen, dass Image-Kaffee ein Aufruf zu unserer
ursprünglichen Bildpunktkopie ist. Und jetzt können wir die
Kopie unseres Originalbildes herausnehmen. Also sagen wir Bild
kopiere den Kopf. Wir haben unsere Konturen und wir
formen sie vier mal zwei neu. Und schließlich können wir unser Bild
CB2 dot
anzeigen , da bin ich mir sicher. Wir werden auf dem
Bild und dem Verzogenen sagen. Und wir werden auch die Größe ändern , um die gleiche
Größe wie unser Bild zu erreichen. Wir werden also CV sagen, um die
Größe unseres verzerrten Bildes zu ändern. Und wir werden die Breite und
Höhe unseres
Originalbildes verwenden . Also los geht's. Hier ist unsere Perspektive. Jetzt können Sie sehen, dass die
Qualität nicht so gut ist. Und das liegt daran, dass wir eine niedrigere Auflösung
verwenden, die 600 mal eine Tangente beträgt. Wenn Sie nun die
Originalgröße des Bildes verwenden, erhalten
Sie natürlich bessere Ergebnisse.