1. Produkte
  2.   Bild
  3.   C++
  4.   Leptonica  

Leptonica  

 
 

C-API für erweiterte Bildverarbeitung

Die Open-Source-C-Bibliothek ermöglicht es Entwicklern, erweiterte Bildverarbeitungsvorgänge wie Bildskalierung, -übersetzung, -drehung und -scherung in ihren eigenen Apps durchzuführen.

Leptonica ist eine Open-Source-C-Bildverarbeitungs- und Bildanalysebibliothek, die sehr nützlich für die Arbeit mit Dokumentbildern sowie natürlichen Bildern ist. Die Bibliothek ist sehr stabil und unterstützt zahlreiche Bildformate wie JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF und PDF. Sie können problemlos Lese- und Schreibvorgänge in der bereitgestellten Liste von Bildformaten durchführen. Die Bibliothek verwendete hauptsächlich einen objektorientierten Ansatz und eine Reihe von Designprinzipien, die den Code sicher, portabel und transparent machen.

Die Bibliothek bietet Unterstützung für mehrere wichtige Operationen und eine Reihe von Werkzeugen für die Bildverarbeitung sowie Bildanalyse. Die Bibliothek unterstützt Operationen wie Bildskalierung, Translation, Rotation, Scherung, Bildtransformationen mit Änderungen in der Pixeltiefe, Binär- und Graustufenmorphologie, pixelweise Maskierung, Mischung, Verbesserung, arithmetische Operationen und vieles mehr. Es unterstützt auch mehrere wichtige Dienstprogramme wie zum Beispiel für die Handhabung von Arrays von bildbezogenen Datentypen wie pixa, boxa, pta und Sonstiges.

Es bietet auch Funktionen zum Lesen und Schreiben von Dateien mit mehreren Bildern und zum Schreiben von Dateien mit speziellen TIFF-Tags, die in den Header eingebettet sind. Außerdem können Entwickler PostScript-Dateien in einer Vielzahl von Formaten schreiben, z. B. Umwandlung in PDF, Rasterbilder und Umwandlung einer PostScript-Datei in einen Satz komprimierter Bilder.

Previous Next

Erste Schritte mit Leptonica

Der einfachste Weg, Leptonica zu installieren, ist die Verwendung über GitHub. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation

Installieren Sie Leptonica über GitHub.

git clone --depth=1 https://github.com/mrdoob/three.js.git 

Bilder lesen und schreiben

Die Open Source Bibliothek Leptonica gibt Software-Entwicklern die Möglichkeit, Bilder innerhalb ihrer eigenen Anwendungen zu lesen und zu schreiben. Es hat mehrere wichtige Methoden zum Lesen und Schreiben von Bildern zur Verfügung gestellt, z.B. Funktionen zum Lesen und Schreiben von Bilddaten, Funktionen zum Lesen und Schreiben von Dateien mit mehreren Bildern, Dateien mit TIFF-Tags im Header. Es gibt einige spezielle Kodierungen, die auch von der Bibliothek unterstützt werden.

Bilder über Leptonica Library

// Open input image with leptonica library
Pix *image = pixRead("/usr/src/tesseract-3.02/phototest.tif");
api->SetImage(image);
// Get OCR result
char *outText;
outText = api->GetUTF8Text();

Bildskalierung über die C-Bibliothek

Die Open-Source-Bibliothek Leptonica bietet vollständige Unterstützung für die problemlose Skalierung von Bildern in ihrer eigenen C-Anwendung. Es gibt zahlreiche Skalierungsfunktionen, die von Leptonica bereitgestellt werden, wie z. B. Hochskalieren mit linearer Interpolation, Herunterskalieren mit Unterabtastung oder Flächenabbildung, Sampling, 2x- und 4x-Hochskalierung mit linearer Interpolation, ganzzahlige Unterabtastung von RGB zu Grau oder Binär und vieles mehr. Abgesehen davon wird auch eine sehr schnelle Skalierung auf Binärbilder angeboten, die für die Bildanalyse des gescannten Binärtextes nützlich ist.

Bessere Bilddrehung über die C-Bibliothek

Die Open-Source-Bibliothek Leptonica hat Unterstützung für das Drehen von Bildern in ihren eigenen C-Anwendungen bereitgestellt. Es gibt zahlreiche Möglichkeiten, um die Bildrotation zu erreichen, wie z. B. Rotation durch Scherung, Rotation durch Bereichsabbildung, spezielle Drehungen um 90, 180 oder 270 Grad, Drehung um entweder 2 oder 3 Scherungen und vieles mehr.

180 Grad Bild Rotation via C Library

extra = w & 31;
if (extra)
    shift = 32 - extra;
else
    shift = 0;
if (shift)
    rasteropHipLow(datas, w, h, d, wpls, 0, h, shift);
databpl = (w + 7) / 8;
bpl = 4 * wpls;
for (i = 0; i < h; i++) {
    lines = datas + (h - 1 - i) * wpls;
    lined = datad + i * wpld;
    for (j = 0; j < databpl; j++) {
        if (val = GET_DATA_BYTE(lines, bpl - 1 - j))
            SET_DATA_BYTE(lined, j, tab[val]);
    }
}
if (shift)
    rasteropHipLow(datas, w, h, d, wpls, 0, h, -shift);
 Deutsch