1. Produkty
  2.   Obraz
  3.   C++
  4.   Leptonica  

Leptonica  

 
 

C API do zaawansowanego przetwarzania obrazu

Biblioteka Open Source C umożliwia programistom wykonywanie zaawansowanych operacji przetwarzania obrazu, takich jak skalowanie, tłumaczenie, obracanie i ścinanie obrazów w ich własnych aplikacjach.

Leptonica to biblioteka do przetwarzania i analizy obrazów typu open source w języku C, która jest bardzo przydatna do pracy z obrazami dokumentów, a także z obrazami naturalnymi. Biblioteka jest bardzo stabilna i zawiera obsługę wielu formatów graficznych, takich jak JPEG, PNG, TIFF, WebP, JP2, BMP, PNM, PS, GIF i PDF. Możesz łatwo wykonywać operacje odczytu i zapisu na dostarczonej liście formatów obrazów. Biblioteka najczęściej wykorzystywała podejście obiektowe i zestaw zasad projektowania, które sprawiają, że kod jest bezpieczny, przenośny i przejrzysty.

Biblioteka zapewnia obsługę kilku ważnych operacji oraz zestaw narzędzi do przetwarzania i analizy obrazu. Biblioteka obsługuje takie operacje, jak skalowanie obrazu, translacja, obracanie, ścinanie, transformacje obrazu ze zmianami głębi pikseli, morfologia binarna i skala szarości, maskowanie Pixelwise, mieszanie, ulepszanie, operacje arytmetyczne i wiele innych. Obsługuje również kilka ważnych narzędzi, takich jak obsługa tablic typów danych związanych z obrazami, takich jak pixa, boxa, pta i inne.

Posiada również funkcje odczytu i zapisu plików zawierających kilka obrazów oraz zapisywania plików ze specjalnymi tagami TIFF osadzonymi w nagłówku. Umożliwia także programistom pisanie plików PostScript w różnych formatach, takich jak transformacja do formatu PDF, obrazy rastrowe i konwersja pliku PostScript do zestawu skompresowanych obrazów.

Previous Next

Pierwsze kroki z Leptonica

Najłatwiejszym sposobem zainstalowania Leptoniki jest użycie GitHub. Użyj następującego polecenia, aby uzyskać płynną instalację

Zainstaluj Leptonica przez GitHub.

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

Czytanie i pisanie obrazów

Biblioteka open source Leptonica daje twórcom oprogramowania możliwość odczytywania i zapisywania obrazów we własnych aplikacjach. Udostępnia kilka ważnych metod odczytu i zapisu obrazów, takich jak funkcje niskiego i wysokiego poziomu do odczytu i zapisu danych obrazu, funkcje odczytu i zapisu plików z wieloma obrazami, pliki z tagami TIFF osadzonymi w nagłówku, odczyt plików JPEG , odczytywanie i zapisywanie plików PostScript oraz kilka innych funkcji. Biblioteka obsługuje również kilka specyficznych koderów.

Czytaj obrazy za pośrednictwem biblioteki 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();

Skalowanie obrazu za pomocą biblioteki C

Biblioteka open source Leptonica zapewnia pełną obsługę skalowania obrazów we własnej aplikacji C z łatwością. Leptonica udostępnia liczne funkcje skalowania, takie jak skalowanie w górę za pomocą interpolacji liniowej, skalowanie w dół za pomocą podpróbkowania lub przez mapowanie obszaru, próbkowanie, interpolacja liniowa w górę 2x i 4x, podpróbkowanie liczb całkowitych RGB do szarości lub binarnie i wiele innych. Oprócz tego oferowane jest również bardzo szybkie skalowanie na obrazach binarnych i jest przydatne do analizy obrazu zeskanowanego tekstu binarnego.

Lepsze obracanie obrazu dzięki bibliotece C

Biblioteka open source Leptonica zapewniła obsługę obracania obrazów we własnych aplikacjach C. Istnieje wiele sposobów na wykonanie operacji obracania obrazu, takich jak obrót o ścinanie, obrót o odwzorowanie obszaru, specjalne obroty o 90, 180 lub 270 stopni, obrót o 2 lub 3 ścinanie i wiele innych.

Obrót obrazu o 180 stopni za pomocą biblioteki 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);
 Polski