Einsatz CIB Module unter iOS technischer Leitfaden (DE)
3. SDK
3.3. Ansteuerung
CIB pdf toolbox
CIB pdfModule
CIB image toolbox
CIB ocr
CIB aiModule
Allgemein
Bei den CIB Modulen handelt es sich um native C++-Bibliotheken. Dies bringt gewisse technische Erfordernisse mit sich, die hier beschrieben werden.
Prinzipiell folgt der Aufruf aller CIB Module einem festen Ablauf. Er kann durch Wrapper implizit ausgeführt werden. Lediglich beim Direktzugriff auf die CIB Module wird der hier beschriebene Ablauf explizit offensichtlich:
- Laden der Bibliothek und aller Abhängigkeiten.
- Muss lediglich einmalig je Laufzeit vorgenommen werden.
- Erstellen eines Jobs.
- Setzen von Properties für diesen Job.
- Ausführung des Jobs.
- Abholen der Ergebnisse.
- Freigeben des Jobs.
Für die Fehleranalyse gibt jeder Aufruf eines Jobs einen Fehlercode zurück. In den jeweiligen technischen Leitfäden finden sich Listen mit der jeweiligen Bedeutung.
Für jeden Aufruf eines Jobs kann darüber hinaus ein Tracefile geschrieben werden, welches für die weitere Fehleranalyse erforderlich ist. Es wird nur geschrieben, wenn für die Property „TraceFilename“ ein gültiger Pfad gesetzt ist.
Für die CIB Module sind im Framework Klassen für den Direktzugriff vorhanden. Diese mappen 1:1 die nativen Schnittstellen der CIB Module über JNI auf Java-Methoden. Somit können die CIB Module ganz individuell genutzt und die volle Funktionalität ausgereizt werden. Die jeweiligen Property-Namen und mögliche Werte finden Sie für jedes CIB Modul in dem entsprechenden technischen Leitfaden.
In jedem Fall wird empfohlen zunächst einen Blick auf den Showcase zu werfen, der bereits typische Anwendungsfälle beinhaltet, auf die eigene aufgebaut werden können.
CIB pdf toolbox
Klassen für Direktzugriff
- doXisafeBase/DXPDFToolboxJob
- doXisafeBase/COMod
Beispiele für die einzelnen Schritte:
- Laden der Bibliothek und aller Abhängigkeiten.
- Wird implizit durch das System vorgenommen.
- Erstellen eines Jobs.
- Setzen von Properties für diesen Job.
- Namen und Werte für die meisten Properties finden Sie in „COMod.h“. Eine vollständige Liste mit Dokumentation finde Sie im technischen Leitfaden der CIB pdf toolbox.
- Ausführung des Jobs.
- Abholen der Ergebnisse.
- Wenn die Property „OutputFilename“ gesetzt wurde, kann im dort angegebenen Pfad die Ausgabedatei gefunden werden.
- Abholen von Get-Properties mit folgendem Aufruf:
- Fehlercodes und Meldungen sind hier zu finden:
- Freigeben des Jobs.
- Wird implizit vorgenommen.
DXPDFToolboxJob *job = [[DXPDFToolboxJob alloc] init];
[job setValue:value forProperty:name];
BOOL success = [job execute];
NSString *result = [job valueForProperty:name];
job.error.code; job.error.userInfo;
CIB pdfModule
- doXisafeBase/DXPDFModuleJob
- doXisafeBase/COMod
Beispiele für die einzelnen Schritte:
- Laden der Bibliothek und aller Abhängigkeiten.
- Wird implizit durch das System vorgenommen.
- Erstellen eines Jobs.
- Setzen von Properties für diesen Job.
- Namen und Werte für die meisten Properties finden Sie in „COMod.h“. Eine vollständige Liste mit Dokumentation finde Sie im technischen Leitfaden der CIB pdf toolbox.
- Ausführung des Jobs.
- Abholen der Ergebnisse.
- Wenn die Property „OutputFilename“ gesetzt wurde, kann im dort angegebenen Pfad die Ausgabedatei gefunden werden.
- Abholen von Get-Properties mit folgendem Aufruf:
- Fehlercodes und Meldungen sind hier zu finden:
- Freigeben des Jobs.
- Wird implizit vorgenommen.
DXPDFToolboxJob *job = [[DXPDFModuleJob alloc] init];
[job setValue:value forProperty:name];
BOOL success = [job execute];
String *result = job.getProperty(name)
job.error.code; job.error.userInfo;
CIB image toolbox
- doXisafeBase/DXIPLProcessingJob
- doXisafeBase/COMod
Beispiele für die einzelnen Schritte:
- Laden der Bibliothek und aller Abhängigkeiten.
- Wird implizit durch das System vorgenommen.
- Erstellen eines Jobs.
- Setzen von Properties für diesen Job.
- Namen und Werte für die meisten Properties finden Sie in „COMod.h“. Eine vollständige Liste mit Dokumentation finde Sie im technischen Leitfaden der CIB image toolbox.
-
„UIImages“ können als Input wie folgt übergeben werden.
- Ausführung des Jobs.
- Abholen der Ergebnisse.
- Wenn die Property „OutputFilename“ gesetzt wurde, kann im dort angegebenen Pfad die Ausgabedatei gefunden werden.
- Abholen von Get-Properties mit folgendem Aufruf:
- Falls das Ergebnis wiederum eine Bitmap ist, kann diese wie folgt abgeholt werden./li>
UIImage *uiImageResult = [job getOutputUiImage];
- Fehlercodes und Meldungen sind hier zu finden:
job.error.code; job.error.userInfo;
- Freigeben des Jobs.
- Wird implizit vorgenommen.
DXIPLProcessingJob *job = [[DXIPLProcessingJob alloc] init];
[job setValue:value forProperty:name];
UIImage *uiImage = [UIImage imageNamed:pathFile];
[job addInputUiImage: uiImage];
BOOL success = [job execute];
NSString *result = [job valueForProperty:name];
Wrapper-Klassen
- doXisafeBase/CibIpl
Beispiele für die einzelnen Schritte mit CibIpl:
Hierbei handelt es sich um eine Klasse mit statischen Methoden. Sie decken Anwendungsfälle zur Bildbearbeitung ab wie das Anwenden von Filtern, Erkennung von Dokumenten oder das Drehen von Bildern. Innerhalb der Methoden sind alle Schritte berücksichtigt, womit sich der Einsatz als sehr einfach darstellt.
UIImage *uiImageResult = [[CibIpl alloc] boostContrast:uiImage contrast:1.5f];
CIB ocr
- doXisafeBase/DXOCRJob
- doXisafeBase/COMod
Beispiele für die einzelnen Schritte:
- Laden der Bibliothek und aller Abhängigkeiten.
- Wird implizit durch das System vorgenommen.
- Erstellen eines Jobs.
- Setzen von Properties für diesen Job.
- Namen und Werte für die meisten Properties finden Sie in „COMod.h“. Eine vollständige Liste mit Dokumentation finde Sie im technischen Leitfaden der CIB imagetoolbox.
- Ausführung des Jobs.
- Abholen der Ergebnisse.
- Wenn die Property „OutputFilename“ gesetzt wurde, kann im dort angegebenen Pfad die Ausgabedatei gefunden werden.
- Abholen von Get-Properties mit folgendem Aufruf:
- Fehlercodes und Meldungen sind hier zu finden:
- Freigeben des Jobs.
- Wird implizit vorgenommen.
DXOCRJob *job = [[DXOCRJob alloc] init];
[job setValue:value forProperty:name];
BOOL success = [job execute];
NSString *result = [job valueForProperty:name];
job.error.code; job.error.userInfo;
CIB aiModule
Dieses Modul wird nicht direkt angesteuert. Es wird durch CIB image toolbox gekapselt und wird für die Kantenerkennung auf KI-Basis benötigt. Am einfachsten ist ein Aufruf über die Wrapper-Klasse „CibIpl“ mit der Methode findLargestRectangle() indem der dritte Parameter auf „Ai“ gesetzt wird. Dies setzt direkt die Property „InfoGetBoundaries/Algorithm“ in CIB image toolbox. Weitere mögliche Werte und Informationen finden Sie im Technischen Leitfaden von CIB image toolbox, wenn Sie nach „InfoGetBoundaries“ suchen.
DXPointsRecord record = [[CibIpl alloc] findLargestRectangle:&cibImageProcessingImage orientation:UIInterfaceOrientationPortrait algorithm:@"Ai"];