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

Leptonica  

 
 

C API til avanceret billedbehandling

Open Source C-biblioteket gør det muligt for udviklere at udføre avancerede billedbehandlingsoperationer som billedskalering, oversættelse, rotation, forskydning i deres egne apps.

Leptonica er et open source C-billedbehandlings- og billedanalysebibliotek, der er meget nyttigt til at arbejde med dokumentbilleder såvel som naturlige billeder. Biblioteket er meget stabilt og har inkluderet understøttelse af adskillige billedformater såsom JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF og PDF. Du kan nemt udføre læse- og skrivehandlinger på den medfølgende liste over billedformater. Biblioteket brugte for det meste objektorienteret tilgang og et sæt designprincipper, der gør koden sikker, bærbar og gennemsigtig.

Biblioteket understøtter flere vigtige operationer og et sæt værktøjer til billedbehandling samt billedanalyse. Biblioteket understøtter operationer som billedskalering, translation, rotation, shear, billedtransformationer med ændringer i pixeldybde, binær og gråskalamorfologi, Pixelwise maskering, blanding, forbedring, aritmetiske operationer og mange flere. Det understøtter også adskillige vigtige hjælpeprogrammer som f.eks. håndtering af arrays af billedrelaterede datatyper såsom pixa, boxa, pta og em> andet.

Det har også leveret funktioner til at læse og skrive filer med flere billeder og skrivefiler med specielle TIFF-tags indlejret i headeren. Det giver også udviklere mulighed for at skrive PostScript-filer i en række forskellige formater, såsom transformation til PDF, rasterbilleder og konvertering af en PostScript-fil til et sæt komprimerede billeder.

Previous Next

Kom godt i gang med Leptonica

Den nemmeste måde at installere Leptonica på er ved at bruge via GitHub. Brug venligst følgende kommando for en problemfri installation

Installer Leptonica via GitHub.

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

Læse og skrive billeder

Open source-biblioteket Leptonica giver softwareudviklere mulighed for at læse og skrive billeder i deres egne applikationer. Det har givet flere vigtige metoder til læsning og skrivning af billeder, såsom lav- og højniveau-funktioner til læsning og skrivning af billeddata, funktioner til læsning og skrivning af filer med flere billeder, filer med TIFF-tags indlejret i headeren, læsning af JPEG-filer , læsning og skrivning af PostScript-filer og flere andre funktioner. Der er nogle specifikke indkodere, der også understøttes af biblioteket.

Læs billeder 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();

Billedskalering via C Library

Open source-biblioteket Leptonica har givet komplet support til let skalering af billeder inde i deres egen C-applikation. Der er adskillige skaleringsfunktioner leveret af Leptonica, såsom opskalering ved hjælp af lineær interpolation, nedskalering ved hjælp af subsampling, eller ved områdekortlægning, sampling, 2x og 4x lineær interpolationsopskalering, heltalsundersampling af RGB til grå eller binær og mange flere. Ud over det tilbydes også meget hurtig skalering på binære billeder, og er nyttig til billedanalyse af den scannede binære tekst.

Bedre billedrotation via C Library

Open source-biblioteket Leptonica har givet support til at rotere billeder inde i deres egne C-applikationer. Der er adskillige måder at opnå billedrotationsoperationen på, såsom rotation ved forskydning, rotation ved områdekortlægning, specielle rotationer med 90, 180 eller 270 grader, rotation med enten 2 eller 3 forskydninger og mange flere.

180 graders billedrotation via C-bibliotek

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);
 Dansk