Desnivelar imagens em Python | Correção de distorção de imagem em Python

Se você está procurando uma maneira de alinhar corretamente o conteúdo inclinado nas imagens, você chegou ao lugar certo. Neste artigo, aprenderemos como realizar a correção de distorção no processamento de imagens usando Python. Orientaremos você nos fundamentos da correção de distorção em Python. Abordaremos como detectar distorção em uma imagem, como calcular o ângulo de inclinação e como distorcer suas imagens programaticamente usando Python.

Este artigo cobre os seguintes tópicos:

  1. Correção de distorção de imagem
  2. API de correção de distorção do Python
  3. Detecção de distorção em Python
  4. Correção automática de inclinação
  5. DeSkew Imagens Manualmente
  6. Correção de inclinação - Recursos gratuitos

Correção de distorção de imagem

A correção de distorção no processamento de imagem, também conhecida como alinhamento, é o processo de alinhar uma imagem que está inclinada ou distorcida para torná-la mais atraente visualmente e mais fácil de trabalhar. A inclinação pode ocorrer por vários motivos, como digitalização inadequada, distorção de perspectiva ou desalinhamento da câmera, conforme mostrado na imagem abaixo:

Imagem distorcida

A imagem de origem.

API Python para distorcer imagens

Aspose.OCR é uma biblioteca de OCR amplamente usada que permite realizar OCR em imagens digitalizadas, fotos de smartphones, capturas de tela, áreas de uma imagem e PDFs digitalizados em várias linguagens de programação, incluindo Python. Estaremos usando a API Aspose.OCR for Python via .NET para correções de distorção.

Por favor, baixe o pacote ou instale a API do PyPI usando o seguinte comando pip no console:

pip install aspose-ocr-python-net

Detectar ângulo de inclinação em Python

Podemos detectar facilmente o ângulo de inclinação de um texto em uma imagem seguindo as etapas abaixo:

  1. Crie uma instância da classe AsposeOCR.
  2. Inicialize um objeto da classe OcrInput.
  3. Adicione a imagem ao lote de reconhecimento OcrInput.
  4. Chame o método calculaskew(). Toma o caminho da imagem como argumento.
  5. Mostre o ângulo de inclinação calculado.

O código de exemplo a seguir mostra como detectar o ângulo de inclinação de uma imagem em Python.

import aspose.ocr as ocr

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

# Adicionar imagem ao lote de reconhecimento
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE)
img.add("D:\\Files\\source.png")

# Detectar ângulo de inclinação
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°

Correção automática de distorção em Python

Podemos ativar a correção automática de inclinação e salvar a imagem corrigida seguindo as etapas abaixo:

  1. Crie uma instância da classe AsposeOCR.
  2. Inicialize um objeto da classe PreprocessingFilter.
  3. Adicione o filtro autoskew().
  4. Depois disso, adicione a imagem ao lote de reconhecimento e aplique um filtro de processamento usando a classe OcrInput.
  5. Por fim, chame o método ImageProcessing.save() para salvar a imagem processada na pasta do caminho especificado.

O código de exemplo a seguir mostra como aplicar a correção de distorção automática com um filtro de pré-processamento em Python.

import aspose.ocr as ocr

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

# Inicialize o processamento de imagem
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(filters.auto_skew())

# Adicione imagem ao lote de reconhecimento e aplique filtro de processamento
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Salve a imagem processada na pasta "resultado"
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")
Correção automática de inclinação com filtro em Python

Correção automática de inclinação com filtro em Python.

Desnivelar imagens manualmente em Python

Para correção manual de inclinação, podemos definir o ângulo de inclinação manualmente seguindo as etapas abaixo:

  1. Crie uma instância da classe AsposeOCR.
  2. Inicialize um objeto da classe PreprocessingFilter.
  3. Adicione o filtro rotate().
  4. Depois disso, adicione a imagem ao lote de reconhecimento e aplique um filtro de processamento usando a classe OcrInput.
  5. Por fim, chame o método ImageProcessing.save() para salvar a imagem processada na pasta do caminho especificado.

O código de exemplo a seguir mostra como enquadrar imagens manualmente em Python.

import aspose.ocr as ocr

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

# Inicialize o processamento de imagem
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(ocr.models.preprocessingfilters.PreprocessingFilter.rotate(5.8))

# Adicione imagem ao lote de reconhecimento e aplique filtro de processamento
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Salve a imagem processada na pasta "resultado"
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar o Aspose.OCR para Python via .NET sem limitações de avaliação.

Correção de inclinação - recursos gratuitos

Além de implementar a correção de distorção de imagem em Python, você pode explorar ainda mais a API Python OCR usando os seguintes recursos:

Conclusão

Neste artigo, aprendemos como alinhar corretamente as imagens inclinadas usando a correção de inclinação da imagem em Python. Vimos como enquadrar imagens usando o método automático e definindo o ângulo de rotação manualmente. Ao aproveitar o Aspose.OCR para Python via .NET, você pode incorporar facilmente esse recurso em seus aplicativos Python. Em caso de qualquer ambigüidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também