이미지 처리에서 왜곡 보정은 이미지 최적화 작업입니다. 컴퓨터 비전에서는 카메라와 센서를 올바르게 배치해야 하지만 이는 종종 큰 왜곡으로 이어집니다. 마찬가지로 스캐너로 스캔할 때 정렬이 거의 불가능한 경우가 있습니다. 이로 인해 스캔한 이미지와 사진에 약간의 기울어짐(기울기)이 있습니다. 이 기사에서는 C#을 사용하여 이미지 처리에서 왜곡 보정을 수행하는 방법을 배웁니다.
이 기사에서는 다음 주제를 다룹니다.
- C# 왜곡 보정 이미지 처리 API
- 이미지 기울기 각도 감지
- 자동 기울기 보정
- 전처리 필터를 통한 자동 스큐 보정
- 자동 기울기 보정으로 이미지 텍스트 인식
- 수동 기울기 보정
- 전처리 필터를 사용한 수동 스큐 보정
C# 왜곡 보정 이미지 처리 API
왜곡 보정을 위해 Aspose.OCR for .NET API를 사용합니다. API를 사용하면 스캔한 이미지, 스마트폰 사진, 스크린샷, 이미지 영역 및 스캔한 PDF에 대해 OCR을 수행할 수 있습니다. 인식된 텍스트 결과를 인기 문서 형식으로 저장할 수 있습니다.
API의 DLL 다운로드 또는 NuGet을 사용하여 설치하십시오.
PM> Install-Package Aspose.OCR
C#에서 이미지 기울기 각도 감지
API는 제공된 소스 이미지의 기울기 각도를 계산하는 CalculateSkew(string) 메서드를 제공합니다. 다음 단계에 따라 텍스트 이미지의 기울이기 각도를 쉽게 감지할 수 있습니다.
- 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
- CalculateSkew() 메서드를 호출합니다. 이미지 경로를 인수로 사용합니다.
- 마지막으로 계산된 기울기 각도를 표시합니다.
다음 샘플 코드는 C#에서 이미지의 기울이기 각도를 계산하는 방법을 보여줍니다.
// 이 코드 예제는 이미지의 기울이기 각도를 계산하는 방법을 보여줍니다.
// AsposeOcr의 인스턴스 만들기
AsposeOcr recognitionEngine = new AsposeOcr();
// 기울기 각도 계산
float skew = recognitionEngine.CalculateSkew("C:\\Files\\OCR\\source.png");
// 각도 표시
Console.WriteLine($"Skew angle: {skew:N1}°");
Skew angle: 5.8°
C#의 자동 기울기 보정
자동 기울기 보정을 위해 다음 단계에 따라 인식 설정에서 RecognitionSettings.AutoSkew 속성을 활성화할 수 있습니다.
- 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
- 다음으로 RecognitionSettings 클래스의 개체를 초기화합니다.
- 그런 다음 AutoSkew 속성을 true로 설정합니다.
- 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
- 마지막으로 인식된 텍스트를 표시합니다.
다음 샘플 코드는 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 전처리 필터를 적용하고 아래 단계에 따라 보정된 이미지를 저장할 수 있습니다.
- 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
- 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
- 그런 다음 AutoSkew() 필터를 추가합니다.
- 그런 다음 PreprocessImage() 메서드를 호출하여 원본 이미지에 필터를 적용합니다.
- 마지막으로 수정된 이미지를 저장합니다.
다음 샘플 코드는 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#에서 자동 기울기 보정으로 이미지 텍스트 인식
다음 단계에 따라 AutoSkew 전처리 필터를 적용하고 이미지 텍스트를 인식할 수 있습니다.
- 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
- 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
- 그런 다음 AutoSkew() 필터를 추가합니다.
- 한편 RecognitionSettings 클래스의 인스턴스를 만듭니다.
- 그런 다음 PreprocessingFilters 속성에 필터를 할당합니다.
- 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
- 마지막으로 인식된 텍스트를 표시합니다.
다음 샘플 코드는 자동 기울이기 수정을 적용하고 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 속성을 지정하여 기울기 각도를 수동으로 정의할 수 있습니다.
- 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
- 다음으로 RecognitionSettings 클래스의 개체를 초기화합니다.
- 그런 다음 SkewAngle 속성을 설정합니다.
- 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
- 마지막으로 인식된 텍스트를 표시합니다.
다음 샘플 코드는 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 전처리 필터를 사용하여 이미지를 지정된 각도로 회전하여 기울이기 각도를 수동으로 정의할 수도 있습니다.
기울이기 보정을 수동으로 적용하려면 아래 단계를 따르십시오.
- 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
- 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
- 그런 다음 Rotate() 필터를 추가합니다.
- 한편 RecognitionSettings 클래스의 인스턴스를 만듭니다.
- 그런 다음 PreprocessingFilters 속성에 필터를 할당합니다.
- 그런 다음 소스 이미지와 RecognitionSettings 개체를 사용하여 RecognizeImage() 메서드를 호출합니다.
- 마지막으로 인식된 텍스트를 표시합니다.
다음 샘플 코드는 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에 대해 자세히 알아볼 수 있습니다. 모호한 점이 있는 경우 무료 지원 포럼에서 언제든지 문의해 주십시오.