1. produkty
  2.   obraz
  3.   C++
  4.   Leptonica  

Leptonica  

 
 

C API pro pokročilé zpracování obrazu

Knihovna Open Source C umožňuje vývojářům provádět pokročilé operace zpracování obrázků, jako je změna měřítka obrázku, posouvání, otáčení, smyk uvnitř jejich vlastních aplikací.

Leptonica je open source knihovna pro zpracování a analýzu obrázků v jazyce C, která je velmi užitečná pro práci s obrázky dokumentů i přirozenými obrázky. Knihovna je velmi stabilní a obsahuje podporu mnoha obrazových formátů, jako jsou JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF a PDF. Můžete snadno provádět operace čtení a zápisu na poskytnutém seznamu obrazových formátů. Knihovna většinou používala objektově orientovaný přístup a sadu principů návrhu, díky nimž je kód bezpečný, přenosný a transparentní.

Knihovna poskytuje podporu pro několik důležitých operací a sadu nástrojů pro zpracování obrazu a analýzu obrazu. Knihovna podporuje operace, jako je změna měřítka obrazu, translace, rotace, smyk, transformace obrazu se změnami v hloubce pixelů, binární a šedé morfologie, Pixelwise maskování, prolnutí, vylepšení, aritmetické operace a mnoho dalších. Podporuje také několik důležitých utilit, jako je zpracování polí datových typů souvisejících s obrázky, jako jsou pixa, boxa, pta a jiné.

Poskytuje také funkce pro čtení a zápis souborů s několika obrázky a zápis souborů se speciálními značkami TIFF vloženými do záhlaví. Umožňuje také vývojářům psát PostScriptové soubory v různých formátech, jako je transformace do PDF, rastrové obrázky a převod PostScriptového souboru na sadu komprimovaných obrázků.

Previous Next

Začínáme s Leptonica

Nejjednodušší způsob instalace Leptonica je pomocí GitHubu. Pro bezproblémovou instalaci použijte prosím následující příkaz

Nainstalujte Leptonica přes GitHub.

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

Čtení a psaní obrázků

Open source knihovna Leptonica dává softwarovým vývojářům možnost číst a zapisovat obrázky uvnitř jejich vlastních aplikací. Poskytuje několik důležitých metod pro čtení a zápis obrázků, jako jsou nízkoúrovňové a vysokoúrovňové funkce pro čtení a zápis obrazových dat, funkce pro čtení a zápis souborů s více obrázky, soubory se značkami TIFF vloženými do záhlaví, čtení souborů JPEG. , čtení a zápis PostScriptových souborů a několik dalších funkcí. Knihovna podporuje také některé specifické kodéry.

Přečtěte si obrázky prostřednictvím knihovny Leptonica

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

Měřítko obrazu prostřednictvím knihovny C

Knihovna s otevřeným zdrojovým kódem Leptonica poskytla kompletní podporu pro snadné škálování obrázků v jejich vlastní C aplikaci. Leptonica poskytuje četné škálovací funkce, jako je upscaling pomocí lineární interpolace, downscaling pomocí subsamplingu nebo mapováním oblasti, vzorkování, 2x a 4x lineární interpolační upscaling, celočíselné subvzorkování RGB na šedou nebo binární a mnoho dalších. Kromě toho je nabízeno také velmi rychlé škálování na binárních obrázcích, které je užitečné pro obrazovou analýzu naskenovaného binárního textu.

Lepší otáčení obrazu prostřednictvím knihovny C

Knihovna s otevřeným zdrojovým kódem Leptonica poskytla podporu pro otáčení obrázků uvnitř jejich vlastních C aplikací. Existuje mnoho způsobů, jak dosáhnout operace rotace obrazu, jako je rotace smykem, rotace podle mapování oblasti, speciální rotace o 90, 180 nebo 270 stupňů, rotace o 2 nebo 3 smyky a mnoho dalších.

Otočení obrazu o 180 stupňů prostřednictvím knihovny C

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);
 Čeština