Ich programmiere an einer Software, die dazu dienen soll, größere Mengen gescannter PDF-Dokumente zu verarbeiten. Zur Analyse kann ich die Dateien mit einer Library zu Pixelgrafiken rendern, was ich mit 200dpi (entspricht der Scan-Auflösung) tue, so dass ich auf diese Weise an den "Pixel-Inhalt" als internes Grafik-Objekt herankomme. Bisher sind nur Test-Mengen gescannt, es soll erst demnächst richtig losgehen. Mit einer weiteren Lib gelingt es mir in der Grafik, auf den Dokumenten mitgescannte Aufkleber mit QR-Code ausfindig zu machen und diese zu decodieren. Soweit so gut. Was mir aber bisher nicht gelingt, ist es, die Orientierung der Dokumente herauszufinden. Der QR-Decoder-Lib ist die Lage des Codes völlig egal, von dort bekomme ich nur den Textinhalt (wird später zum Namen der Datei) UND die Koordinaten in Pixeln, an der sich der erkannte QR-Code in der Pixelgrafik befindet. Die Prüfung auf Hoch- oder Querformat bringt auch nix, beides kann möglich sein. Ich suche nun nach einer Idee für einen optischen Marker, den man neben den QR-Code mitdrucken kann (dessen Koordinaten habe ich ja), bei dem es möglich wäre, mit rel. einfachen Pixeltest-Poutinen, allerdings möglichst deutlich unterhalb von "OpenCV" o.ä. die Orientierung zu erkennen. Die Aufkleber mit den QR-Codes sind im Scan gut Schwarz/Weiß, ich kann auch den Kontrast in der Grafik noch etwas anziehen, so dass keine aufwändige Vorverarbeitung notwendig erscheint. Lediglich die Auflösung ist mit 200dpi nicht sonderlich groß. Alternative Idee: Ich habe auch Zugriff auf Tesseract-OCR. Wenn ich einen (zuvor in der Grafik zu findenden) Ausschnitt mit einem bekannten Testtext jeweils um 90 Grad drehe und an das OCR "verfüttere", sollte mir doch die Version mit den meisten richtig erkannten Zeichen mir die Lage verraten, oder?
Hat jedes Dokument einen QR-Code, und wie hat es den bekommen? QR-Codes enthalten ja schon Orientierungsinformation -- drei Ecken (oben links, oben rechts, unten links) enthalten große Positionsmarker, die vierte (unten rechts) nur einen Orientierungsmarker. Deine QR-Decoder-Bibliothek wertet diese Information bereits aus, wenn sie den QR-Code liest. Wenn man sich prozessual darauf verlassen könnte, dass der QR-Code immer richtig herum aufgebracht wird, könnte man daraus auch die Orientierung der Seite lesen.
Ein QR Code hat eine Orientierung. Die würde ich hernehmen. Welches ist denn die "weitere" Lib zur QR Code detektion. Bekommst du da neben der Position ggf. auch die Position der Alignment Pattern. Falls nicht, wie wäre es bspw. mit https://boofcv.org/index.php?title=Example_Detect_QR_Code als Lib.
der Qr Code enthält die gesuchten flächen schon. nicht neben dem code, sondern im Codefeld.
Ich verwende die ZXing-Lib. Aber die liefert keine Orientierungsdaten, nur den Inhalt.
Frank E. schrieb: > Ich suche nun nach einer Idee für einen optischen Marker, den man neben > den QR-Code mitdrucken kann Irgendwas verstehe ich da nicht: du druckst Dokumente aus, um sie dann einzuscannen? Georg
Ich vermute: Er druckt Aufkleber aus, die auf Dokumente geklebt werden (laufende Nummern?), die dann eingescannt werden.
Michael G. schrieb: > Ich vermute: Er druckt Aufkleber aus, die auf Dokumente geklebt > werden > (laufende Nummern?), die dann eingescannt werden. Genau so ist es. Es handelt sich um technische Zeichnungen aus Ordnern, die danach geschreddert und entsorgt werden sollen. Die Aufkleber enthalten die Bezeichnung des Ordners aus dem sie stammen (z.B. "RK.130-10-xxx" und eine laufende Nummer). Zwar kann ich davon ausgehen, dass die Aufkleber immer in der richtigen Orientierung auf die Zeichungn aufgeklebt sind, aber da die Zeichnungen häufig auch recht merkwürdige Formate aufweisen, ist keineswegs sicher, dass sie immer in der richtigen Orientierung durch den Großformat-Scanner gelaufen sind.
:
Bearbeitet durch User
Haben alle Zeichnungen ein Textfeld? (vielleicht sogar optimalerweise mit einem gleichbleibenden Symbol, z.B. Projektionsart). Im Textfeld dürfte die Orientierung des Textes ja immer gleich sein und es ist rechts unten.
:
Bearbeitet durch User
Frank E. schrieb: > Ich programmiere an einer Software, die dazu dienen soll, größere Mengen > gescannter PDF-Dokumente zu verarbeiten. Zur Analyse kann ich die > Dateien mit einer Library zu Pixelgrafiken rendern, was ich mit 200dpi > (entspricht der Scan-Auflösung) tue, so dass ich auf diese Weise an den > "Pixel-Inhalt" als internes Grafik-Objekt herankomme. Bisher sind nur > Test-Mengen gescannt, es soll erst demnächst richtig losgehen. Dann poste uns doch mal den Quellcode! Bin daran auch iunteressiert
Walter T. schrieb: > Haben alle Zeichnungen ein Textfeld? (vielleicht sogar > optimalerweise > mit einem gleichbleibenden Symbol, z.B. Projektionsart). > > Im Textfeld dürfte die Orientierung des Textes ja immer gleich sein und > es ist rechts unten. Die Zeichnungen haben fast alle ein Textfeld. Aber sie stammen teilweise bis aus den 1970ern, das ist keinesfalls immer einheitlich und teilweise auch handgeschrieben. Im Gegensatz zu den Aufklebern haben die Zeichnugen auch oft hundsmisserablen Kontrast (tw. "Blaupausen", gefühlt 5. Generation ...) - das wird bestimmt nix.
Designer schrieb: > Frank E. schrieb: >> Ich programmiere an einer Software, die dazu dienen soll > > Dann poste uns doch mal den Quellcode! Bin daran auch iunteressiert Eher nicht. Das Projekt ist in XOJO geschrieben, unter Verwendung der DynaPDF-Lib als Plugin, damit ist diese "nahtlos" in die Syntax integriert. Früher habe ich die PDF mit Apache PDFBox gerendert, das ging auch, aber weil es sich um ein externes CLI-Tool handelt, war das wegen des ständigen Hin- und Her mit Programmaufruf, Argumente übergeben, warten bis Prozess zuende, laden des Pixelbildes ... einfach zu nervig und zu lahm. Mit DynaPDF habe ich ein geladenes A3-PDF in 1s mit 200dpi gerendert im Puffer ...
Also für mich klingt das auch sehr nach "QR Aufkleber orientierung" zunächst.. quasi als "vorauswahl" Ich denke das wird 90% korrekt orientieren, die restlichen zehn Prozent werden vermutlich aber in der Tat schwierig, insbesondere bei schlechtem Kontrast in Verbingung mit Handschrift (die ggf nichteinmal besonders sauber ist) mein erster Ansatz wäre ich würde innerhalb der Testscans nach dem jeweiligen Textfeld suchen und dieses versuchen automatisch zu erkennen (klassisch über Pixel.. [4 parallele Linien suchen die sich in einer Ecke des Bildes befinden] meist kannst Du sogar sagen in welchem ungefähren Abstand die Linien sein müssen) oder über selbstlernende Mustererkennung richtet man nach horizontalen Linien aus, hat man nur zwei Möglichkeiten. Dokument korrekt, Dokument 180° gedreht Nun kannst Du unten rechts positionierte Textfelder eigentlich getrost als korrekt orientiert annehmen. (würde ich tatsächlich) In jedem anderen Fall würde ich den Bildausschnitt mit dem Textfeld durch ein OCR jagen in der Hoffnung es kann lesen was da steht; falls nicht um 180° drehen und nochmal versuchen (verifikation der Annahme) und falls beides fehlschlägt dann wüsste ich nicht wie gross die Kanone sein müsste mi der Du auf den Plan schiessen willst.. oder Du schickst alle solche scans in den "nimm deine Augen"-Ordner und orientierst sie von Hand. 'sid
Frank E. schrieb: > Ich verwende die ZXing-Lib. Aber die liefert keine Orientierungsdaten, > nur den Inhalt. Warum nicht die Lib forken und die Funktion(en) hinzufügen?
.hhmmm Probier es mal aus.. mach von den Testscans thumbnails.. (300x300 px max oder so) markier die position des textfeldes in den Scans (nicht im Bild, im Dateinamen __ könnte übrigens auch schon im QR gestanden haben ..müsste man nur n handheld printer für benutzen dann...zu spät) und lass n neuronales Netz drüberlaufen.. ich denke mit dem thumb alleine kommt das nach ein paar Trainingsrunden schon auf volle Leistung. 'sid PPS falls das nicht klappt und die Pläne noch nicht gescannt sind, n Kunde von mir hat in die rechte obere Ecke seiner scans immer einen roten Punkt geklebt (Zweckform du weisst schon) der lässt sich super in scans wiederfinden und man orientiert nach dem Punkt. Ja ich weiss.. lästig aber wenn Du den unten rechts ins Textfeld klebst machst Du's dem Code leichter ;)
TR.0LL schrieb: > Frank E. schrieb: >> Ich verwende die ZXing-Lib. Aber die liefert keine Orientierungsdaten, >> nur den Inhalt. > > Warum nicht die Lib forken und die Funktion(en) hinzufügen? Nunja, ohne die Lib zu kennen: Da muß man nix forken oder hinzufügen. So eine Funktion wird's geben, ganz sicher. Da muß der TE halt mal genau hinschauen. MfG
https://groups.google.com/forum/m/#!forum/tesseract-ocr Suche mal nach Orientation. Dort werden mehrere Methoden besprochen. Mit der richtigen Einstellung sollte die Orientierung automatisch erkannt werden. https://github.com/tesseract-ocr/tesseract/issues/1651
Frank E. schrieb: > Ich suche nun nach einer Idee für einen optischen Marker, > den man neben den QR-Code mitdrucken kann (dessen > Koordinaten habe ich ja), bei dem es möglich wäre, mit > rel. einfachen Pixeltest-Poutinen, allerdings möglichst > deutlich unterhalb von "OpenCV" o.ä. die Orientierung zu > erkennen. Einfach DREI (identische oder verschiedene) QR-Codes auf die Zeichnung kleben: Einen in die linke obere Ecke, einen in die rechte obere Ecke, einen in die linke untere Ecke. Die Library liefert Dir die Koordinaten dreier Punkte; daraus kannst Du die drei Winkel des Dreieckes berechnen. Der Winkel, der am nächsten an 90° liegt, ist links oben.
Egon D. schrieb: > Einfach DREI (identische oder verschiedene) QR-Codes auf > die Zeichnung kleben: Einen in die linke obere Ecke, einen > in die rechte obere Ecke, einen in die linke untere Ecke. wie jetzt? drei aufkleber und winkel sind komplett unnötig! Dir ist schon klar dass ein QR selbst Orientierungsmarken hat, oder? wenn man EINEN QR ausgerichtet aufklebt ist alles tutti! ist nur leider nicht zwangsläufig gegeben wenn ich TO richtig verstehe. mit EINEM "mustererkennbaren" Aufkleber (dazu reicht eine vordefinierte farbe und grösse.. [rote zweckform punkte zb]) an definierter Stelle (logisches Rechts unten zB) lässt sich ein Bild drehen und ja der zweckform punkt ist schon ein zweiter aufkleber leider.. Aber auch zwei irgendwelchen Aufkleber (rechts oben, rechts unten) reichen um ein Bild zu drehen.. Du müsstest es in beiden Fällen spiegeln um eine Fehlorientierung zu erzeugen. Aaaaber und das ist das worauf ich ja schon hinauswollte.. ich bin nahezu sicher, dass jedes einigermassen trainierte erkennungsnetz das Schriftfeld erkennen kann selbst in runtergerechneten thumbnails. nichtmal besonders sensationeller Kontrast dürfte erforderlich sein, nur ein paar hundert Trainingbilder bei kleinerer Testmenge einige Hundert durchläufe in dem man alle thumbnails per zufall um 0,90,180,270 grad drehen lässt zwischen den durchläufen um etwas mehr "variation" zu haben.. im idealfall kontrast runter, rauf, farbsättigung, invertierte Farben, spiegeln etc... aber ja n neuronales Netz zu schreiben und zu trainieren mag eventuell overkill sein, deswegen ja der bunte Zweckform Klebepunkt.. banal, leicht zu finden und sofern man den immer in die Nähe des textfeldes klebt ist man schon fast durch mit der Nummer ;) 'sid
Erstmal danke für die vielen Tips, aber ... - die von mir verwedete QR-Lib liefert keine Orientierungs-Infos nach draußen (das nur nochmal für die, die das immer wieder empfehlen). Das das irgendwo intern eine Rolle spielt und abgreifbar sein müsste/sollte ist mir auch klar, is aber nich - es ist keine Zeit, mehr als einen Aufkleber auf die Zeichnungen zu machen, dazu sind es auch zu viele - die Zeichnungen sollen in Graustufen archiviert werden, weshalb farbige Punkte erstmal nicht möglich sind. Allerding prüfe ich die Idee, die Rohscans zunächst doch in RGB zu erstellen und nach der "erkennungsdienstlichen Behandlung" das PDF nach Graustufen zu konvertieren. - die Beschriftungsfelder der Zeichnugnen sind einfach zu unterschiedlich, ich glaube nicht an eine Erkennung mit vernünftigem Aufwand - ich werde zunächst eine weiter oben schonmal geäußerte Idee ausprobieren: Neben dem QR-Code (der ist nur 2x2cm) drucke ich einen Testtext mit und checke den per OCR, indem ich den Grafik-Ausschitt in alle 4 Richtungen drehe. Der Versuch mit den meisten richtig erkannten Zeichen (die, die da stehen, kenne ich ja vorher - im Gegensatz zu dem, was z.B. in der Zeichnung steht), wird mir dann wohl die richtige Orientierung liefern ...
:
Bearbeitet durch User
Frank E. schrieb: > - es ist keine Zeit, mehr als einen Aufkleber auf > die Zeichnungen zu machen, dazu sind es auch zu > viele Wundert mich nicht. Warum habe ich überhaupt geantwortet...
Frank E. schrieb: > - die Beschriftungsfelder der Zeichnugnen sind einfach zu > unterschiedlich, ich glaube nicht an eine Erkennung mit vernünftigem > Aufwand Saßen die früher nicht direkt in einer Ecke der Zeichnung?
Frank E. schrieb: > Ich verwende die ZXing-Lib. Aber die liefert keine > Orientierungsdaten, > nur den Inhalt. Die ZXing 3.4.0 API beschreibt unter DetectorResult: > Encapsulates the result of detecting a barcode in an image. This includes > the raw matrix of black/white pixels corresponding to the barcode, and > possibly points of interest in the image, like the location of finder > patterns or corners of the barcode in the image. "location" hört sich vielversprechend an.
MWS schrieb: > Frank E. schrieb: >> Ich verwende die ZXing-Lib. Aber die liefert keine >> Orientierungsdaten, >> nur den Inhalt. > > Die ZXing 3.4.0 API beschreibt unter DetectorResult: >> Encapsulates the result of detecting a barcode in an image. This includes >> the raw matrix of black/white pixels corresponding to the barcode, and >> possibly points of interest in the image, like the location of finder >> patterns or corners of the barcode in the image. > > "location" hört sich vielversprechend an. Ja, das sind die Koordinaten, an denen der Barcode in der großen Pixelgrafik gefunden wurde. Leider kann man den QR-Aufkleber nicht immer in die geiche Ecke, den gleichen Quadranten oder in die Nähe des Textfeldes kleben, weil die Zeichungen oft so voll sind, dass dann Teile davon verdeckt wären. Ansonsten wäre es ja zu einfach :-)
:
Bearbeitet durch User
> like the location of finder > patterns or corners of the barcode in the image. Das hörte sich nach mehreren Koordinaten an, mit denen eine Orientierungsbestimmung möglich wäre.
Angehaengt mal ein QR-Code. Die Lib sagt dir also wo genau der Code auf dem Blatt zu finden ist. Dann kann es doch nicht mehr schwer sein, die drei Kaestchen und damit die Ausrichtung aufzuspueren? Zumindest nicht schwieriger, wie irgendwelche anderen Symbole, die man neben hin druckt.
Frank E. schrieb: > - es ist keine Zeit, mehr als einen Aufkleber auf die Zeichnungen zu > machen, dazu sind es auch zu viele Frank E. schrieb: > - ich werde zunächst eine weiter oben schonmal geäußerte Idee > ausprobieren: Neben dem QR-Code (der ist nur 2x2cm) drucke ich einen > Testtext mit und checke den per OCR, Ahaa, also sind die Aufkleber noch nicht gedruckt.. das ist doch suuper.. kannst Du die "klebeanweisung" geben den QR Aufkleber unten rechts zu kleben? (oder oben links wie Du willst...) dann reicht das völlig.. da Du die Position des QR Aufklebers ja gesagt bekommst, reicht das zusammen mit den Pixeln doch schon.. teile die vertikale und horizontale Bildgrösse durch zwei und Du hast vier Bildsektoren, mit den Pixelpositionen des QR Aufklebers, weisst Du also in welchem der vier Sektoren der QR klebt.. das ist unten rechts (oder was auch immer Du vordefiniert hast... da unten rechts das textfeld ist, macht das ma meisten Sinn mMn so geht am wenigsten Zeichnung verloren schlimmstenfalls) also pseudocode
1 | // Scaninfos 'fake' |
2 | img_width = 2000; |
3 | img_height = 4000; |
4 | qr_left = 400; |
5 | qr_top = 238; |
6 | |
7 | // damit alleine und der Info dass der Aufkleber unten rechts sein sollte: |
8 | if (qr_left < img_width/2 && qr_top < img_height/2) rotateImg(180); |
9 | else if (qr_left > img_width/2 && qr_top > img_height/2) doNothing(); |
10 | else throwWarning(); |
Na? ist das banal oder ja? Die Anweisung den QR aufrecht zu kleben ist vermutlich ähnlich "anstrengend" wie darum zu bitten ihn "unten rechts" unterzubringen, oder? und Du sparst dir jedwede Texterkennung. 'sid
Frank E. schrieb: >>> possibly points of interest in the image, like the location of finder >>> patterns or corners of the barcode in the image. >> >> "location" hört sich vielversprechend an. > > Ja, das sind die Koordinaten, an denen der Barcode in der großen > Pixelgrafik gefunden wurde. "finder patterns" sind die großen Quadrate in den Ecken des QR-Codes, nicht der komplette QR-Code. In der Doku der class FinderPatternInfo steht: "Encapsulates information about finder patterns in an image, including the location of the three finder patterns, and their estimated module size." Entsprechend gibt es die Methoden: FinderPattern getBottomLeft() FinderPattern getTopLeft() FinderPattern getTopRight() Also auch wenn du noch so vehement behauptest, dass es das nicht gibt, glaube ich dir das nicht.
:
Bearbeitet durch User
sid schrieb: > Frank E. schrieb: >> - es ist keine Zeit, mehr als einen Aufkleber auf die Zeichnungen zu >> machen, dazu sind es auch zu viele > > Frank E. schrieb: >> - ich werde zunächst eine weiter oben schonmal geäußerte Idee >> ausprobieren: Neben dem QR-Code (der ist nur 2x2cm) drucke ich einen >> Testtext mit und checke den per OCR, > > Ahaa, also sind die Aufkleber noch nicht gedruckt.. > das ist doch suuper.. > > kannst Du die "klebeanweisung" geben den QR Aufkleber unten rechts zu > kleben? (oder oben links wie Du willst...) > Nein, das kann nicht gewärleistet werden, weil die Zeichnungen teilweise so "voll" sind, dass der Aufkleber (brutto 6x3cm) Inhalte verdecken würde. Also wird es auch Aufkleber an anderen Stellen/in anderen Quadranten geben müssen.
Frank E. schrieb: > Aufkleber (brutto 6x3cm) Du hättest ja gleich sagen können, dass du ganze Postkarten aufkleben willst. Du erklärst uns bestimmt in einer weiteren Salamischeibe warum der QRCode so riesig sein muss. Aber verrate bloss nicht zuviel damit du noch weitere Informationen in Reserve hast und der Thread noch ein paar Tage weitergeht. Georg
Frank E. schrieb: > QR-Code (der ist nur 2x2cm) georg schrieb: > Frank E. schrieb: >> Aufkleber (brutto 6x3cm) > > Du hättest ja gleich sagen können, dass du ganze Postkarten aufkleben > willst. Besser, was da noch alles auf dem Aufkleber drauf ist, ohne das es sich zur Lageerkennung nutzen lässt. Aber das Thema ist durch. Die lib bietet alles, was man braucht, wer das nicht nutzen will oder kann, muß mit seinen Problemen leben. Oliver
Frank E. schrieb: > Nein, das kann nicht gewärleistet werden, weil die Zeichnungen teilweise > so "voll" sind, dass der Aufkleber (brutto 6x3cm) Inhalte verdecken > würde. Also wird es auch Aufkleber an anderen Stellen/in anderen > Quadranten geben müssen. Naja deswegen sollte man den Aufkleber ja im Textfeld... ... aber ich wiederhole mich mach doch vier Aufkleber pro Zeichung codiere die position im QR code (OL,OR,UL,UR) und schreib die position auf den 6x3 (platz ist ja genug!) dann kannste den Aufkleberschergen bitten den passenden Aufkleber zu benutzen je nach Quadrant.. aber das wird ja erfahrungsgemäss auch wieder gegen irgend'ne Ausrede verstossen. und mit riesen aufklebern (6x3.. was benutzt Du versandetiketten??) und vollgemalten Zeichnungsögen ohne Platz wirst Du vermutlich auch die Orientierung der Aufkleber in der Zeichnung nicht gewährleisten können, also fallen OCR und Positionsmarken auch aus... Was hast Du eigentlich gegen kleinere Aufkleber (1x1 reicht völlig) die passen in die vollsten Zeichnungen, und Du kannst sie and den äussersten Rand kleben lassen (zB rechts oder unten) und fertig. Aber nee warte.. jaja auch da fällt dir sicherlich noch was zu ein. Am ende wirst Du nichtmal gewährleisten können dass der richtige QR auf der Zeichnung bappt. dufte Sache das. N QR fähiger Dymo ist vermutlich das was Du am Ende brauchen wirst, damit Scherge den Aufkleber vor Ort mundmalen kann. 'sid
georg schrieb: > Frank E. schrieb: >> Aufkleber (brutto 6x3cm) > > Du hättest ja gleich sagen können, dass du ganze Postkarten aufkleben > willst. Du erklärst uns bestimmt in einer weiteren Salamischeibe warum > der QRCode so riesig sein muss. Aber verrate bloss nicht zuviel damit du > noch weitere Informationen in Reserve hast und der Thread noch ein paar > Tage weitergeht. > > Georg Was ist bitte an einem Aufkleber 6x3cm "riesig"? Die kommen bei Bedarf aus einem Zebra-Etikettendrucker, gesteuert von der Auftragsdatenbank. Sie enthalten den Namen des Ordners und eine laufende Nummer. Außerdem enthalten sie diese Angaben zusätzlich im Klartext, damit beim Handling vor und nach dem Scannen draufgesehen werden kann, ohne erst einen Reader zu zücken. Die QR-Codes dienen zuerst der Benennung der Datei beim Handling am Großformatscanner ... da sind Hilfskräfte zugange, keine Philatelisten ...
sid schrieb: > Frank E. schrieb: >> Nein, das kann nicht gewärleistet werden, weil die Zeichnungen teilweise >> so "voll" sind, dass der Aufkleber (brutto 6x3cm) Inhalte verdecken >> würde. Also wird es auch Aufkleber an anderen Stellen/in anderen >> Quadranten geben müssen. > > Am ende wirst Du nichtmal gewährleisten können dass der richtige QR auf > der Zeichnung bappt. > dufte Sache das. > N QR fähiger Dymo ist vermutlich das was Du am Ende brauchen wirst, > damit Scherge den Aufkleber vor Ort mundmalen kann. Etwas professioneller läuft das schon ab, es handelt sich um mehrere tausend Zeichnungen, die von studentischen Hilfskräften gehandled werden. Eine davon ist nur damit beschäftigt, die Ordner vorher durchzusehen, und in A4, A3 und größeres zu separieren. Bei jeder Entnahme einer Zeichnung aus dem A4-Block wird on demand ein Etikettenpärchen per Zebra LP2824 aus der Auftragsdatenbank abgerufen. Ein Etikett kommt auf die vorherige Seite im A4-Bereich und eines auf die Zeichung. Damit wird diese nach dem Scannen dort wieder eingefügt. Die A4-Dateien werden en bloc in einem HP-Duplex-Dokumentenscanner durchgezogen und danch sofort manuell auftragsgemäß benannt. Die Zeichnungen werden einzeln am Großformatscanner verarbeitet, dabei dient das Etikett der Benennung der Datei, um die mauelle Eingabe zu umgehen ... Um nochmal auf die ursprüngliche Frage zurückzukommen. Diese Zeichnungen habe teilweise extrem exotische Maße und es ist eben nicht möglich, diese immer in der gleichen Orientierung zu scannen. Manchmal sind sie z.B. auch zerknittert oder eigerissen, so dass sie nur gedreht durch den Einzugs-Scanner (Contex Chameleon TX36) laufen. Auch machen die Menschen Fehler ... deshalb wäre es nützlich, die Orientierung der Etiketten zu erkennen. Die Etiketten werden mit sehr hoher Wahrscheinlichkeit ordentlich in der korrekten Orientierung aufgeklebt.
:
Bearbeitet durch User
Frank E. schrieb: > Diese Zeichnungen > habe teilweise extrem exotische Maße Technische Zeichnungen mit 'exotischen' Massen, was sollen denn das für TZ sein? Skizzen auf sechseckigen Bierdeckeln?
Leitmayr schrieb: > Frank E. schrieb: >> Diese Zeichnungen >> habe teilweise extrem exotische Maße > > Technische Zeichnungen mit 'exotischen' Massen, was sollen denn das für > TZ sein? Skizzen auf sechseckigen Bierdeckeln? Schrieb ich oben. Rechteckig sind sie schon. Extremfälle aber z.B. 30cm breit und 250cm lang, der Inhalt darauf mal im Quer- und mal im Hochformat. Viele aber auch ganz einfach DIN-Formate, A3 ... A0. Teilweise merkwürdig gefaltet, mit Knicken oder auch Einreißungen (nicht viele, kommt aber vor). Oder zusammengeklebte "Kollagen" aus Handskizzen, Fotos, Faxen, techn. Zeichungen usw. Es handelt sich um das Archiv eines Herstellers von Bau- und Messfahrzeugen aus dem Bereich Gleisbau, teilweise bis in die 1970er Jahre zurückreichend ...
Leitmayr schrieb: > Frank E. schrieb: >> Diese Zeichnungen >> habe teilweise extrem exotische Maße > > Technische Zeichnungen mit 'exotischen' Massen, was sollen denn das für > TZ sein? Skizzen auf sechseckigen Bierdeckeln? Besonders praxis-vertraut klingt deine Frage nicht. Du hast ja keine Ahnung, was sich in einem solchen Firmen-Archiv in über 50 Jahren alles anfindet ...
Frank E. schrieb: > Was ist bitte an einem Aufkleber 6x3cm "riesig"? Die kommen bei Bedarf > aus einem Zebra-Etikettendrucker, gesteuert von der Auftragsdatenbank. Frank E. schrieb: > und in A4, A3 und größeres zu separieren 6x3 auf A4 ist riesig!.. aber egal, das hilft ja nicht weiter... das hier Frank E. schrieb: > wird on demand ein > Etikettenpärchen per Zebra LP2824 aus der Auftragsdatenbank abgerufen. würde.. denn "on demand" könnte der "demand" nicht den Quadranten enthalten? "machma etikett für xyz1976-03-24 A3 Blatt5 unten links" "und nu Blatt6 oben links" etc... nur für den Fall dass Du beim wichtigsten Punkt widersprechen wolltest Denn das hier ist wirklich das einzig "Nötige" Frank E. schrieb: > Die Etiketten werden mit sehr hoher Wahrscheinlichkeit > ordentlich in der korrekten Orientierung aufgeklebt. wenn dem so ist, ist alles geritzt, die drei Marker und deren Position ist für Dich definitiv abrufbar und daraus lässt sich die Orientierung zweifelsfrei bestimmen, solange der Aufkleber weniger als 45° schief sitzt und das sollte ja machbar sein. Frank E. schrieb: > Ich verwende die ZXing-Lib. Rolf sagte es schon... Rolf M. schrieb: > Entsprechend gibt es die Methoden: > FinderPattern getBottomLeft() > FinderPattern getTopLeft() > FinderPattern getTopRight() hier der Quelltext auf github zum Vergleich https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/qrcode/detector/FinderPatternInfo.java und nu los :D 'sid
sid schrieb: > Frank E. schrieb: >> Was ist bitte an einem Aufkleber 6x3cm "riesig"? Die kommen bei Bedarf >> aus einem Zebra-Etikettendrucker, gesteuert von der Auftragsdatenbank. > > Frank E. schrieb: >> und in A4, A3 und größeres zu separieren > > 6x3 auf A4 ist riesig!.. aber egal, das hilft ja nicht weiter... > Die Aufkleber auf den A4 dienen nur dazu, die Herkunft der entnommenen Zeichnung zu markieren, hier spielen Position und Lage keine Rolle. 98% der A4-Vorlagen sind zudem einseitig, so dass Platz auf deren Rückseite kein Problem ist. Wirkliche Leerseiten werden später automatisch entfernt, die mit Aufklebern natürlich nicht. Über den Rest deines Postings kann man durchaus nachdenken ...
:
Bearbeitet durch User
Hi, ich denke mal, die ZXing lib gibt dir ein Ergebnis vom Type "Result", von dem du dann Result.getText() aufrufst. Der Typ Result hat außerdem aber die Methoden:
1 | getResultPoints |
2 | public ResultPoint[] getResultPoints() |
3 | Returns: |
4 | points related to the barcode in the image. These are typically points identifying finder patterns or the corners of the barcode. The exact meaning is specific to the type of barcode that was decoded. |
Hier könnte die Reihenfolge der Punkte die Orientierung angeben? Wäre ein Versuch wert. Viel wichtiger ist aber:
1 | getResultMetadata |
2 | public Map<ResultMetadataType,Object> getResultMetadata() |
3 | Returns: |
4 | Map mapping ResultMetadataType keys to values. May be null. This contains optional metadata about what was detected about the barcode, like orientation. |
Im Feld Orientation sollte stehen, was du brauchst. Wäre auch seltsam, wenn diese Info nicht von der Lib geliefert würde. steht alles hier: https://htmlpreview.github.io/?https://raw.githubusercontent.com/zxing/zxing/master/docs/apidocs/com/google/zxing/Result.html und hier: https://htmlpreview.github.io/?https://raw.githubusercontent.com/zxing/zxing/master/docs/apidocs/com/google/zxing/ResultMetadataType.html
Frank E. schrieb: > Es handelt sich um technische Zeichnungen aus Ordnern, > die danach geschreddert und entsorgt werden sollen. Frank E. schrieb: > Es handelt sich um das Archiv eines Herstellers von Bau- und > Messfahrzeugen aus dem Bereich Gleisbau, teilweise bis in die 1970er > Jahre zurückreichend ... Bevor das alles unwiederbringlich vernichtet wird: Um wieviel Material handelt es sich denn? Grade bei solchem Material wird es denke ich einige Vereine geben, die das liebend gerne übernehmen würden. Vielleicht sogar das EBA selber. Auch wenn man noch so technikvernarrt ist: Papier ist langzeitstabiler als digitales. Da wäre es schade, solche Nischenunterlagen zu vernichten.
@Frank E.: Dringend mal dieses Video ansehen, dauert zwar eine Stunde, aber der Inhalt hat es in sich. Jeder der scannt, sollte es kennen. https://www.youtube.com/watch?v=7FeqF1-Z1g0
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.