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:
- Oprava zkosení obrázku
- Python Skew Correction API
- Detekce zkreslení v Pythonu
- Automatická korekce zkosení
- Manuálně odstranit zkosení obrázků
- 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:
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ů:
- Vytvořte instanci třídy AsposeOCR.
- Inicializujte objekt třídy OcrInput.
- Přidejte obrázek do dávky rozpoznávání OcrInput.
- Zavolejte metodu kalkulátoru skew(). Jako argument bere cestu obrazu.
- 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ů:
- Vytvořte instanci třídy AsposeOCR.
- Inicializujte objekt třídy PreprocessingFilter.
- Přidejte filtr autoskew().
- Poté přidejte obrázek do rozpoznávací dávky a použijte filtr zpracování pomocí třídy OcrInput.
- 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\\")
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ů:
- Vytvořte instanci třídy AsposeOCR.
- Inicializujte objekt třídy PreprocessingFilter.
- Přidejte filtr Rotate().
- Poté přidejte obrázek do rozpoznávací dávky a použijte filtr zpracování pomocí třídy OcrInput.
- 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.