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

Leptonica  

 
 

C API för avancerad bildbehandling

Open Source C-biblioteket gör det möjligt för utvecklare att utföra avancerad bildbehandling som bildskalning, översättning, rotation, skjuvning i sina egna appar.

Leptonica är ett bibliotek med öppen källkod för C-bildbehandling och bildanalys som är mycket användbart för att arbeta med dokumentbilder såväl som naturliga bilder. Biblioteket är mycket stabilt och har inkluderat stöd för många bildformat som JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF och PDF. Du kan enkelt utföra läs- och skrivoperationer på den medföljande listan över bildformat. Biblioteket använde mestadels ett objektorienterat tillvägagångssätt och en uppsättning designprinciper som gör koden säker, portabel och transparent.

Biblioteket ger stöd för flera viktiga operationer och en uppsättning verktyg för bildbehandling samt bildanalys. Biblioteket stödjer operationer som bildskalning, translation, rotation, skjuvning, bildtransformationer med förändringar i pixeldjup, binär och gråskalemorfologi, pixelvis maskering, blandning, förbättring, aritmetiska operationer och många fler. Den stöder också flera viktiga verktyg som för att hantera arrayer av bildrelaterade datatyper som pixa, boxa, pta och em> annat.

Den har också tillhandahållit funktioner för att läsa och skriva filer med flera bilder och skriva filer med speciella TIFF-taggar inbäddade i rubriken. Det gör det också möjligt för utvecklare att skriva PostScript-filer i en mängd olika format, såsom transformation till PDF, rasterbilder och konvertering av en PostScript-fil till en uppsättning komprimerade bilder.

Previous Next

Komma igång med Leptonica

Det enklaste sättet att installera Leptonica är att använda via GitHub. Använd följande kommando för en smidig installation

Installera Leptonica via GitHub.

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

Läsa och skriva bilder

Biblioteket med öppen källkod Leptonica ger mjukvaruutvecklare möjlighet att läsa och skriva bilder i sina egna applikationer. Det har tillhandahållit flera viktiga metoder för att läsa och skriva bilder såsom lågnivå- och högnivåfunktioner för att läsa och skriva bilddata, funktioner för att läsa och skriva filer med flera bilder, filer med TIFF-taggar inbäddade i rubriken, läsa JPEG-filer , läsa och skriva PostScript-filer och flera andra funktioner. Det finns några specifika kodare som också stöds av biblioteket.

Läs bilder via 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();

Bildskalning via C Library

Biblioteket med öppen källkod Leptonica har gett komplett stöd för att skala bilder i sin egen C-applikation med lätthet. Det finns många skalningsfunktioner som tillhandahålls av Leptonica, såsom uppskalning med linjär interpolering, nedskalning med hjälp av subsampling, eller genom areamapping, sampling, 2x och 4x linjär interpolationsuppskalning, heltalssubsampling av RGB till grått eller binärt och många fler. Utöver det erbjuds också mycket snabb skalning på binära bilder, och är användbar för bildanalys av den skannade binära texten.

Bättre bildrotation via C Library

Biblioteket med öppen källkod Leptonica har gett stöd för att rotera bilder i sina egna C-applikationer. Det finns många sätt att uppnå bildrotationsoperationen, såsom rotation genom skjuvning, rotation genom områdeskartläggning, speciella rotationer med 90, 180 eller 270 grader, rotation med antingen 2 eller 3 skjuvningar och många fler.

180 graders bildrotation 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);
 Svenska