Leptonica
C API haladó képfeldolgozáshoz
A nyílt forráskódú C-könyvtár lehetővé teszi a fejlesztők számára, hogy speciális képfeldolgozási műveleteket hajtsanak végre, például képméretezést, fordítást, elforgatást és nyírást saját alkalmazásaikban.
A Leptonica egy nyílt forráskódú C képfeldolgozó és képelemző könyvtár, amely nagyon hasznos dokumentumképekkel és természetes képekkel való munkavégzéshez. A könyvtár nagyon stabil, és számos képformátumot támogat, például JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF és PDF. Könnyedén végezhet olvasási és írási műveleteket a képformátumok mellékelt listáján. A könyvtár többnyire objektum-orientált megközelítést és olyan tervezési elveket alkalmazott, amelyek biztonságossá, hordozhatóvá és átláthatóvá teszik a kódot.
A könyvtár számos fontos művelethez nyújt támogatást, valamint egy sor eszközkészletet a képfeldolgozáshoz, valamint a képelemzéshez. A könyvtár támogatja az olyan műveleteket, mint a képméretezés, fordítás, elforgatás, nyírás, képátalakítások a pixelmélység változásával, bináris és szürkeárnyalatos morfológia, pixelenkénti maszkolás, keverés, javítás, aritmetikai műveletek és még sok más. Számos fontos segédprogramot is támogat, például a képekkel kapcsolatos adattípusok tömbjeinek kezelésére, mint például a pixa, boxa, pta és em> egyéb.
A több képet tartalmazó fájlok olvasására és írására, valamint a fejlécbe ágyazott speciális TIFF-címkékkel ellátott fájlok írására és olvasására is szolgál. Azt is lehetővé teszi a fejlesztők számára, hogy PostScript-fájlokat írjanak különféle formátumokban, például PDF formátumba alakítva, raszteres képekkel, és a PostScript-fájlokat tömörített képek készletévé konvertálják.
A Leptonica használatának megkezdése
A Leptonica telepítésének legegyszerűbb módja a GitHubon keresztüli telepítés. Kérjük, használja a következő parancsot a zökkenőmentes telepítés érdekében
Telepítse a Leptonicát a GitHubon keresztül.
git clone --depth=1 https://github.com/mrdoob/three.js.git
Képek olvasása és írása
A Leptonica nyílt forráskódú könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy képeket olvassanak és írjanak saját alkalmazásaikban. Számos fontos módszert kínál a képek olvasására és írására, például alacsony és magas szintű funkciókat képadatok olvasására és írására, több képet tartalmazó fájlok olvasására és írására szolgáló funkciókat, fejlécbe ágyazott TIFF címkével ellátott fájlokat, JPEG fájlok olvasását. , PostScript fájlok olvasása és írása, valamint számos egyéb funkció. A könyvtár néhány speciális kódolót is támogat.
Olvasson képeket a Leptonica Könyvtáron keresztül
// 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();
Képméretezés a C Library segítségével
A Leptonica nyílt forráskódú könyvtár teljes támogatást nyújtott a képek méretezéséhez saját C-alkalmazásukon belül. A Leptonica számos skálázási funkciót biztosít, például felskálázást lineáris interpolációval, leskálázást almintavétellel, vagy területleképezést, mintavételt, 2-szeres és 4x-es lineáris interpolációs felskálázást, RGB egész számú almintavételezését szürkére vagy binárisra, és még sok más. Ezen túlmenően a bináris képek nagyon gyors méretezése is elérhető, és hasznos a beolvasott bináris szöveg képelemzéséhez.
Jobb képelforgatás a C Library segítségével
A Leptonica nyílt forráskódú könyvtár támogatja a képek elforgatását saját C-alkalmazásaikon belül. A kép elforgatásának számos módja van, például elforgatás nyírással, elforgatás területtérképezéssel, speciális elforgatások 90, 180 vagy 270 fokkal, elforgatás 2 vagy 3 nyírással és még sok más.
180 fokos képelforgatás a C könyvtáron keresztül
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);