C#을 사용한 이미지 처리의 왜곡 보정

이미지 처리에서 왜곡 보정은 이미지 최적화 작업입니다. 컴퓨터 비전에서는 카메라와 센서를 올바르게 배치해야 하지만 이는 종종 큰 왜곡으로 이어집니다. 마찬가지로 스캐너로 스캔할 때 정렬이 거의 불가능한 경우가 있습니다. 이로 인해 스캔한 이미지와 사진에 약간의 기울어짐(기울기)이 있습니다. 이 기사에서는 C#을 사용하여 이미지 처리에서 왜곡 보정을 수행하는 방법을 배웁니다.

이 기사에서는 다음 주제를 다룹니다.

  1. C# 왜곡 보정 이미지 처리 API
  2. 이미지 기울기 각도 감지
  3. 자동 기울기 보정
  4. 전처리 필터를 통한 자동 스큐 보정
  5. 자동 기울기 보정으로 이미지 텍스트 인식
  6. 수동 기울기 보정
  7. 전처리 필터를 사용한 수동 스큐 보정

C# 왜곡 보정 이미지 처리 API

왜곡 보정을 위해 Aspose.OCR for .NET API를 사용합니다. API를 사용하면 스캔한 이미지, 스마트폰 사진, 스크린샷, 이미지 영역 및 스캔한 PDF에 대해 OCR을 수행할 수 있습니다. 인식된 텍스트 결과를 인기 문서 형식으로 저장할 수 있습니다.

API의 DLL 다운로드 또는 NuGet을 사용하여 설치하십시오.

PM> Install-Package Aspose.OCR

C#에서 이미지 기울기 각도 감지

API는 제공된 소스 이미지의 기울기 각도를 계산하는 CalculateSkew(string) 메서드를 제공합니다. 다음 단계에 따라 텍스트 이미지의 기울이기 각도를 쉽게 감지할 수 있습니다.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. CalculateSkew() 메서드를 호출합니다. 이미지 경로를 인수로 사용합니다.
  3. 마지막으로 계산된 기울기 각도를 표시합니다.

다음 샘플 코드는 C#에서 이미지의 기울이기 각도를 계산하는 방법을 보여줍니다.

// 이 코드 예제는 이미지의 기울이기 각도를 계산하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();

// 기울기 각도 계산
float skew = recognitionEngine.CalculateSkew("C:\\Files\\OCR\\source.png");

// 각도 표시
Console.WriteLine($"Skew angle: {skew:N1}°");
C#에서 이미지 기울기 각도 감지

소스 이미지입니다.

Skew angle: 5.8°

C#의 자동 기울기 보정

자동 기울기 보정을 위해 다음 단계에 따라 인식 설정에서 RecognitionSettings.AutoSkew 속성을 활성화할 수 있습니다.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. 다음으로 RecognitionSettings 클래스의 개체를 초기화합니다.
  3. 그런 다음 AutoSkew 속성을 true로 설정합니다.
  4. 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
  5. 마지막으로 인식된 텍스트를 표시합니다.

다음 샘플 코드는 C#에서 자동 기울이기 수정을 적용하는 방법을 보여줍니다.

// 이 코드 예제는 자동 기울기 보정을 적용하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();

// 인식 설정에서 자동 기울기 보정 활성화
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.AutoSkew = true;

// 이미지 인식
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// 인식된 텍스트 표시
Console.WriteLine(result.RecognitionText);

C#에서 전처리 필터를 사용한 자동 왜곡 보정

또는 자동 기울기 보정을 위해 AutoSkew 전처리 필터를 적용하고 아래 단계에 따라 보정된 이미지를 저장할 수 있습니다.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
  3. 그런 다음 AutoSkew() 필터를 추가합니다.
  4. 그런 다음 PreprocessImage() 메서드를 호출하여 원본 이미지에 필터를 적용합니다.
  5. 마지막으로 수정된 이미지를 저장합니다.

다음 샘플 코드는 C#에서 전처리 필터를 사용하여 자동 왜곡 보정을 적용하는 방법을 보여줍니다.

// 이 코드 예제는 전처리 필터를 사용하여 자동 기울기 보정을 적용하고 보정된 이미지를 저장하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();

// 기울기 보정 필터 추가
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());

// 전처리된 이미지를 파일로 저장
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
    using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
    {
        ms.WriteTo(fs);
    }
}
C#에서 필터를 사용한 자동 스큐 수정

C#의 필터를 사용한 자동 스큐 수정.

C#에서 자동 기울기 보정으로 이미지 텍스트 인식

다음 단계에 따라 AutoSkew 전처리 필터를 적용하고 이미지 텍스트를 인식할 수 있습니다.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
  3. 그런 다음 AutoSkew() 필터를 추가합니다.
  4. 한편 RecognitionSettings 클래스의 인스턴스를 만듭니다.
  5. 그런 다음 PreprocessingFilters 속성에 필터를 할당합니다.
  6. 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
  7. 마지막으로 인식된 텍스트를 표시합니다.

다음 샘플 코드는 자동 기울이기 수정을 적용하고 C#에서 텍스트를 인식하는 방법을 보여줍니다.

// 이 코드 예제에서는 전처리 필터를 사용하여 자동 기울기 보정을 적용하고 이미지를 인식하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();

// 기울기 보정 필터 추가
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());

// 인식 설정에 전처리 필터 추가
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;

// 이미지 인식
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// 결과 보여줘
Console.WriteLine(result.RecognitionText);

C#의 수동 스큐 수정

수동 기울기 보정의 경우 아래 단계에 따라 인식 설정에서 SkewAngle 속성을 지정하여 기울기 각도를 수동으로 정의할 수 있습니다.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. 다음으로 RecognitionSettings 클래스의 개체를 초기화합니다.
  3. 그런 다음 SkewAngle 속성을 설정합니다.
  4. 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
  5. 마지막으로 인식된 텍스트를 표시합니다.

다음 샘플 코드는 C#에서 수동 기울이기 수정을 적용하는 방법을 보여줍니다.

// 이 코드 예제는 수동 기울기 수정을 적용하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();

// 기울이기 각도 수동 설정
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.SkewAngle = 6;

// 이미지 인식
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// 결과 표시
Console.WriteLine(result.RecognitionText);

C#에서 전처리 필터를 사용한 수동 스큐 수정

Rotate 전처리 필터를 사용하여 이미지를 지정된 각도로 회전하여 기울이기 각도를 수동으로 정의할 수도 있습니다.

기울이기 보정을 수동으로 적용하려면 아래 단계를 따르십시오.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
  3. 그런 다음 AutoSkew() 필터를 추가합니다.
  4. 한편 RecognitionSettings 클래스의 인스턴스를 만듭니다.
  5. 그런 다음 PreprocessingFilters 속성에 필터를 할당합니다.
  6. 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
  7. 마지막으로 인식된 텍스트를 표시합니다.

다음 샘플 코드는 C#에서 전처리 필터를 사용하여 수동 왜곡 보정을 적용하는 방법을 보여줍니다.

// 이 코드 예제는 수동 기울기 보정을 적용하고 이미지 텍스트를 인식하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();

// 이미지를 시계 반대 방향으로 90도 회전
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.Rotate(-90));

// 디버깅을 위해 전처리된 이미지를 파일에 저장
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
    using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
    {
        ms.WriteTo(fs);
    }
}

// 인식 설정에 전처리 필터 추가
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;

// 이미지 인식
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);

// 결과 보여줘
Console.WriteLine(result.RecognitionText);

무료 평가판 라이선스 받기

평가 제한 없이 Aspose.OCR for .NET을 사용해 볼 수 있는 무료 임시 라이선스 받기입니다.

결론

이 문서에서는 다음 방법을 배웠습니다.

  • OCR을 수행하고 이미지의 텍스트를 인식합니다.
  • 필터를 적용하고 이미지를 처리합니다.
  • 인식 설정 사용
  • C#을 사용하여 수정된 이미지를 저장합니다.

C#을 사용한 이미지 처리의 왜곡 보정 외에도 문서를 사용하여 .NET API용 Aspose.OCR에 대해 자세히 알아볼 수 있습니다. 모호한 점이 있는 경우 무료 지원 포럼에서 언제든지 문의해 주십시오.

또한보십시오