Erstellen eines mobilen Dokumentenscanners ohne Abhängigkeiten:Einführung

Ich verwende seit langem Apps zum Scannen von Dokumenten wie CamScanner und Smallpdf, um digitale Kopien von physischen Dokumenten zu senden, aber ich habe mich immer gefragt, wie genau die Apps funktionieren. Wenn Sie ein Foto von einem Blatt Papier machen, auch wenn das Papier nicht perfekt zentriert ist, finden diese Apps automatisch seine Ecken und verzerren die Perspektive des Bildes, sodass es aussieht, als wäre es mit einem speziellen Scanner aufgenommen worden. Vor ein paar Wochen habe ich begonnen, nach Open-Source-Dokumentenscannern zu suchen, die ich studieren könnte.

Das Problem? Da sind keine. Vielmehr haben die einzigen Open-Source-Dokumentenscanner, die ich finden konnte, im Grunde alles an OpenCV weitergegeben, das leider über eine sehr spärliche interne Dokumentation verfügt.

Also beschloss ich, meinen eigenen Dokumentenscanner zu bauen, mit einem Haken:Ich würde keine Bibliotheken von Drittanbietern verwenden . Einen Monat später habe ich einen Prototypen, mit dem ich zufrieden bin, und er hat bei den meisten Dokumenten, mit denen ich ihn getestet habe, gut funktioniert.

Versuchen wir es mit einem zufälligen Bild von Google:

Hier ist mein Dokumentenscanner bei der Arbeit:

Und hier ist unser Endergebnis:

Die Qualität ist nicht perfekt, da das Originalbild keine sehr hohe Auflösung hatte, aber das Fotografieren der meisten Dokumente mit einem anständigen Smartphone liefert großartige Ergebnisse. Wenn Sie es ausprobieren möchten, sind der Code und eine Demo-Website auf GitHub verfügbar.

Ich würde jedoch dringend empfehlen, zuerst die restlichen Artikel dieser Serie zu lesen, um zu verstehen, was genau unter der Haube passiert. Ich glaube, dass jeder selbst die kompliziertesten Aspekte der Informatik lernen kann, deshalb habe ich diese Serie so geschrieben, dass Sie nur Anfänger-Programmierkenntnisse und ein grundlegendes Verständnis der Algebra benötigen, um mitzumachen. Lassen Sie uns gleich eintauchen!