Leptonica
C API edistyneelle kuvankäsittelylle
Avoimen lähdekoodin C-kirjaston avulla kehittäjät voivat suorittaa edistyneitä kuvankäsittelytoimintoja, kuten kuvan skaalaus, käännös, kierto ja leikkaus omissa sovelluksissaan.
Leptonica on avoimen lähdekoodin C-kuvankäsittely- ja kuvaanalyysikirjasto, joka on erittäin hyödyllinen työskennellessäsi asiakirjakuvien ja luonnollisten kuvien kanssa. Kirjasto on erittäin vakaa ja sisältää tuen lukuisille kuvaformaateille, kuten JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF ja PDF. Voit helposti suorittaa luku- ja kirjoitustoimintoja mukana tulevalla kuvamuotoluettelolla. Kirjastossa käytettiin enimmäkseen oliolähtöistä lähestymistapaa ja joukko suunnitteluperiaatteita, jotka tekevät koodista turvallisen, kannettavan ja läpinäkyvän.
Kirjasto tarjoaa tukea useille tärkeille toiminnoille ja joukon työkaluja kuvankäsittelyyn ja kuvan analysointiin. Kirjasto tukee toimintoja, kuten kuvan skaalaus, käännös, kierto, leikkaus, kuvan muunnokset pikselin syvyyden muutoksilla, binääri- ja harmaasävymorfologia, pikselisuuntainen maskaus, sekoitus, parannus, aritmeettiset toiminnot ja paljon muuta. Se tukee myös useita tärkeitä apuohjelmia, kuten kuviin liittyvien tietotyyppien, kuten pixa, boxa, pta ja muu.
Se on myös tarjonnut toimintoja useiden kuvien sisältävien tiedostojen lukemiseen ja kirjoittamiseen sekä tiedostojen kirjoittamiseen, joiden otsikkoon on upotettu erityiset TIFF-tunnisteet. Sen avulla kehittäjät voivat myös kirjoittaa PostScript-tiedostoja useissa eri muodoissa, kuten muunnoksia PDF-muotoon, rasterikuvia ja PostScript-tiedoston muuntamista pakattujen kuvien joukoksi.
Leptonican käytön aloittaminen
Helpoin tapa asentaa Leptonica on GitHubin kautta. Käytä seuraavaa komentoa sujuvaan asennukseen
Asenna Leptonica GitHubin kautta.
git clone --depth=1 https://github.com/mrdoob/three.js.git
Kuvien lukeminen ja kirjoittaminen
Avoimen lähdekoodin kirjasto Leptonica antaa ohjelmistokehittäjille mahdollisuuden lukea ja kirjoittaa kuvia omissa sovelluksissaan. Se on tarjonnut useita tärkeitä menetelmiä kuvien lukemiseen ja kirjoittamiseen, kuten matalan ja korkean tason toiminnot kuvatietojen lukemiseen ja kirjoittamiseen, toiminnot useiden kuvien tiedostojen lukemiseen ja kirjoittamiseen, tiedostoja, joiden otsikkoon on upotettu TIFF-tunnisteet, JPEG-tiedostojen lukemiseen. , lukee ja kirjoittaa PostScript-tiedostoja ja useita muita toimintoja. Kirjasto tukee myös tiettyjä koodereita.
Lue kuvat Leptonica-kirjaston kautta
// 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();
Kuvan skaalaus C-kirjaston kautta
Avoimen lähdekoodin kirjasto Leptonica on tarjonnut täydellisen tuen kuvien skaalaamiseen omassa C-sovelluksessaan helposti. Leptonica tarjoaa lukuisia skaalaustoimintoja, kuten nostaminen lineaarista interpolaatiota käyttäen, alaskaalaus käyttämällä alinäytteenottoa tai aluekartoitus, näytteenotto, 2x ja 4x lineaarisen interpoloinnin nostaminen, kokonaislukualinäytteistys RGB:stä harmaaksi tai binääriksi ja monia muita. Sen lisäksi tarjolla on myös erittäin nopea skaalaus binäärikuville, ja se on hyödyllinen skannatun binääritekstin kuva-analyysissä.
Parempi kuvan kierto C-kirjaston kautta
Avoimen lähdekoodin kirjasto Leptonica on tarjonnut tukea kuvien pyörittämiseen omissa C-sovelluksissaan. Kuvan kiertotoiminnon saavuttamiseksi on lukuisia tapoja, kuten kierto leikkausvoimalla, kierto aluekartoituksen mukaan, erikoisrotaatiot 90, 180 tai 270 astetta, kierto joko 2 tai 3 leikkausvoimalla ja monia muita.
180 asteen kuvan kierto C-kirjaston kautta
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);