Deskew Images v Pythonu | Oprava zkosení obrázku v Pythonu

Pokud hledáte způsob, jak správně zarovnat nakloněný obsah v obrázcích, pak jste na správném místě. V tomto článku se naučíme, jak provést korekci zešikmení při zpracování obrazu pomocí Pythonu. Provedeme vás základy korekce zkosení v Pythonu. Probereme, jak detekovat zkosení v obrázku, jak vypočítat úhel zkosení a jak programově pomocí Pythonu vyrovnat obrázky.

Tento článek se zabývá následujícími tématy:

  1. Oprava zkosení obrázku
  2. Python Skew Correction API
  3. Detekce zkreslení v Pythonu
  4. Automatická korekce zkosení
  5. Manuálně odstranit zkosení obrázků
  6. Oprava překroucení – bezplatné zdroje

Korekce zkosení obrazu

Korekce zkosení při zpracování obrazu, známá také jako vyrovnání, je proces zarovnání obrazu, který je nakloněný nebo zkosený, aby vypadal vizuálně atraktivněji a snáze se s ním pracovalo. Zkosení může nastat z různých důvodů, jako je nesprávné skenování, zkreslení perspektivy nebo nesouosost kamery, jak je znázorněno na obrázku níže:

Zkreslený obrázek

Zdrojový obrázek.

Python API pro Deskew Images

Aspose.OCR je široce používaná knihovna OCR, která umožňuje provádět OCR na naskenovaných obrázcích, fotografiích smartphonu, snímcích obrazovky, oblastech obrázku a naskenovaných PDF v různých programovacích jazycích, včetně Pythonu. Pro opravy zkreslení budeme používat API Aspose.OCR for Python přes .NET.

Prosím stáhněte si balíček nebo nainstalujte API z PyPI pomocí následujícího příkazu pip v konzole:

pip install aspose-ocr-python-net

Detekce úhlu zkosení v Pythonu

Úhel zkosení textu v obrázku můžeme snadno zjistit podle následujících kroků:

  1. Vytvořte instanci třídy AsposeOCR.
  2. Inicializujte objekt třídy OcrInput.
  3. Přidejte obrázek do dávky rozpoznávání OcrInput.
  4. Zavolejte metodu kalkulátoru skew(). Jako argument bere cestu obrazu.
  5. Ukažte vypočítaný úhel zkosení.

Následující ukázkový kód ukazuje, jak zjistit úhel zkosení obrázku v Pythonu.

import aspose.ocr as ocr

# Instantiate Aspose.OCR API
api = ocr.AsposeOcr()

# Přidejte obrázek do dávky rozpoznávání
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE)
img.add("D:\\Files\\source.png")

# Zjistit úhel zkosení
angles = api.calculate_skew(img);
for angle in angles:
    print("File: " + angle.source)
    print(f"Skew angle: {angle.angle:.1f}\xb0")
File: D:\Files\source.png
Skew angle: 5.8°

Automatická korekce zkosení v Pythonu

Můžeme povolit automatickou korekci zkosení a uložit opravený obrázek podle následujících kroků:

  1. Vytvořte instanci třídy AsposeOCR.
  2. Inicializujte objekt třídy PreprocessingFilter.
  3. Přidejte filtr autoskew().
  4. Poté přidejte obrázek do rozpoznávací dávky a použijte filtr zpracování pomocí třídy OcrInput.
  5. Nakonec zavolejte metodu ImageProcessing.save() k uložení zpracovaného obrazu do určené složky cesty.

Následující ukázkový kód ukazuje, jak použít automatickou korekci zkosení s filtrem předběžného zpracování v Pythonu.

import aspose.ocr as ocr

# Instantiate Aspose.OCR API
api = ocr.AsposeOcr()

# Inicializujte zpracování obrazu
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(filters.auto_skew())

# Přidejte obrázek do dávky rozpoznávání a použijte filtr zpracování
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Uložte zpracovaný obrázek do složky „výsledky“.
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")
Automatická korekce zkosení s filtrem v Pythonu

Automatická korekce zkosení s filtrem v Pythonu.

Ručně vyrovnat obrázky v Pythonu

Pro ruční korekci zkosení můžeme úhel zkosení definovat ručně podle následujících kroků:

  1. Vytvořte instanci třídy AsposeOCR.
  2. Inicializujte objekt třídy PreprocessingFilter.
  3. Přidejte filtr Rotate().
  4. Poté přidejte obrázek do rozpoznávací dávky a použijte filtr zpracování pomocí třídy OcrInput.
  5. Nakonec zavolejte metodu ImageProcessing.save() k uložení zpracovaného obrazu do určené složky cesty.

Následující ukázkový kód ukazuje, jak ručně vyrovnat obrázky v Pythonu.

import aspose.ocr as ocr

# Instantiate Aspose.OCR API
api = ocr.AsposeOcr()

# Inicializujte zpracování obrazu
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(ocr.models.preprocessingfilters.PreprocessingFilter.rotate(5.8))

# Přidejte obrázek do dávky rozpoznávání a použijte filtr zpracování
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Uložte zpracovaný obrázek do složky „výsledky“.
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet Aspose.OCR for Python přes .NET bez omezení hodnocení.

Korekce zkreslení – bezplatné zdroje

Kromě implementace opravy zkosení obrazu v Pythonu můžete dále prozkoumat Python OCR API pomocí následujících zdrojů:

Závěr

V tomto článku jsme se naučili, jak správně zarovnat nakloněné obrázky pomocí korekce zkosení obrázku v Pythonu. Viděli jsme, jak vyrovnat obrázky pomocí automatické metody a ručním nastavením úhlu natočení. Využitím Aspose.OCR for Python přes .NET můžete snadno vložit takovou funkci do svých aplikací Python. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také