1. Produktai
  2.   Vaizdas
  3.   C++
  4.   Leptonica  

Leptonica  

 
 

C API, skirta išplėstiniam vaizdo apdorojimui

Atvirojo kodo C biblioteka leidžia kūrėjams atlikti išplėstines vaizdo apdorojimo operacijas, tokias kaip vaizdo mastelio keitimas, vertimas, pasukimas, kirpimas savo programose.

Leptonica yra atvirojo kodo C vaizdų apdorojimo ir vaizdų analizės biblioteka, kuri labai naudinga dirbant su dokumentų vaizdais ir natūraliais vaizdais. Biblioteka yra labai stabili ir palaiko daugybę vaizdo formatų, tokių kaip JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF ir PDF. Pateiktame vaizdo formatų sąraše galite lengvai atlikti skaitymo ir rašymo operacijas. Bibliotekoje dažniausiai buvo naudojamas į objektą orientuotas metodas ir projektavimo principų rinkinys, dėl kurio kodas yra saugus, nešiojamas ir skaidrus.

Biblioteka teikia paramą kelioms svarbioms operacijoms ir vaizdų apdorojimo bei vaizdo analizės įrankių rinkinį. Biblioteka palaiko tokias operacijas kaip vaizdo mastelio keitimas, vertimas, sukimas, šlyties, vaizdo transformacijos su pikselių gylio pokyčiais, dvejetainė ir pilkos spalvos morfologija, pikselių maskavimas, maišymas, tobulinimas, aritmetinės operacijos ir daugelis kitų. Ji taip pat palaiko keletą svarbių paslaugų, pvz., tvarkyti su vaizdais susijusių duomenų tipų masyvus, pvz., pixa, boxa, pta ir em> kita.

Ji taip pat suteikė funkcijas, skirtas skaityti ir rašyti failus, turinčius kelis vaizdus, ir rašyti failus su specialiomis TIFF žymomis, įterptomis antraštėje. Tai taip pat leidžia kūrėjams rašyti PostScript failus įvairiais formatais, pavyzdžiui, transformuoti į PDF, rastrinius vaizdus ir konvertuoti PostScript failą į suspaustų vaizdų rinkinį.

Previous Next

Darbo su Leptonica pradžia

Lengviausias būdas įdiegti Leptonica yra naudoti per GitHub. Norėdami sklandžiai įdiegti, naudokite šią komandą

Įdiekite „Leptonica“ per „GitHub“.

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

Vaizdų skaitymas ir rašymas

Atvirojo kodo biblioteka Leptonica suteikia programinės įrangos kūrėjams galimybę skaityti ir rašyti vaizdus savo programose. Jame pateikti keli svarbūs vaizdų skaitymo ir rašymo būdai, pvz., žemo ir aukšto lygio vaizdų duomenų skaitymo ir rašymo funkcijos, failų su keliais vaizdais skaitymo ir rašymo funkcijos, failų su antraštėje įterptomis TIFF žymomis, JPEG failų skaitymo funkcijos. , skaityti ir rašyti PostScript failus ir keletą kitų funkcijų. Biblioteka taip pat palaiko kai kuriuos specifinius koduotuvus.

Skaitykite vaizdus per Leptonica biblioteką

// 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();

Vaizdo mastelio keitimas naudojant C biblioteką

Atvirojo kodo biblioteka Leptonica suteikė visišką palaikymą, kad būtų galima lengvai keisti vaizdus savo C programoje. Yra daug Leptonica teikiamų mastelio keitimo funkcijų, tokių kaip padidinimas naudojant tiesinę interpoliaciją, sumažinimas naudojant subsampling arba ploto atvaizdavimas, atranka, 2x ir 4x linijinės interpoliacijos padidinimas, sveikųjų skaičių dalinis RGB atranka į pilką arba dvejetainį ir daugelis kitų. Be to, siūlomas labai greitas dvejetainių vaizdų mastelio keitimas, kuris yra naudingas nuskaityto dvejetainio teksto vaizdų analizei.

Geresnis vaizdo pasukimas naudojant C biblioteką

Atvirojo kodo biblioteka Leptonica suteikė palaikymą vaizdams pasukti savo C programose. Yra daug būdų, kaip pasiekti vaizdo pasukimo operaciją, pvz., sukimas šlyties būdu, sukimas pagal ploto atvaizdavimą, specialus pasukimas 90, 180 arba 270 laipsnių, pasukimas 2 arba 3 šlyties greičiu ir daug daugiau.

180 laipsnių vaizdo pasukimas per 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);
 Lietuvių