Java의 이미지 왜곡 보정

컴퓨터 그래픽 및 이미지 처리에서 이미지 스큐는 직사각형 이미지의 각도 편차입니다. 이미지 기울기 또는 왜곡이라고도 합니다. “스큐"라는 용어는 이미지의 각도를 나타냅니다. 이미지 왜곡은 이미지에서 요소의 시각적 위치가 균일하지 않을 때 발생합니다. 기울이면 모서리가 비스듬히 놓이거나 한쪽이 다른 쪽보다 더 길어질 수도 있습니다. 이러한 사진이나 스캔한 이미지는 왜곡되어 보기에 좋지 않을 수 있습니다. 이 기사에서는 프로그래밍 방식으로 이미지 왜곡을 감지하는 방법을 배웁니다. Java에서 이미지 왜곡 보정을 수행하는 방법도 배웁니다.

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

  1. 이미지 왜곡 보정을 위한 Java API
  2. 이미지 기울기 각도 감지
  3. 라이브 이미지의 이미지 기울기 각도 감지
  4. 자동 이미지 기울기 보정
  5. 자동 기울기 보정으로 이미지 텍스트 인식
  6. 수동 이미지 기울기 보정
  7. 수동 이미지 기울기 보정으로 이미지 텍스트 인식

이미지 왜곡 보정을 위한 Java API

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

API의 AsposeOCR 클래스는 이미지에서 텍스트를 인식하기 위한 메인 클래스입니다. 제공된 소스 이미지의 기울기 각도를 계산하는 CalcSkewImage(string) 메서드를 제공합니다. 또한 URI 링크에서 제공하는 이미지의 기울기 각도를 계산하는 또 다른 CalcSkewImageFromUri(String uri) 메서드를 제공합니다. PreprocessingFilter 클래스는 이미지 처리 명령의 기본 클래스입니다. API의 RecognitionSettings 클래스는 인식 프로세스를 사용자 정의할 수 있는 요소를 포함하는 이미지 인식에 대한 설정을 제공합니다.

API의 JAR을 다운로드하거나 Maven 기반 Java 애플리케이션에 다음 pom.xml 구성을 추가하십시오.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>22.9</version>
</dependency>

Java에서 이미지 기울기 각도 감지

다음 단계에 따라 텍스트 이미지의 기울이기 각도를 쉽게 감지할 수 있습니다.

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

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

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

// 기울기 각도 계산
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// 각도 표시
System.out.println("Skew angle: " + skew + "°.");

라이브 이미지 URL에서 이미지 기울기 각도 감지

아래 단계에 따라 라이브 URL에서 이미지의 기울기 각도를 감지할 수도 있습니다.

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

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

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

// 기울기 각도 계산
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// 각도 표시
System.out.println("Skew angle: " + skew + "°.");

Java의 자동 이미지 왜곡 보정

다음 단계에 따라 이미지 왜곡 보정을 자동으로 수정할 수 있습니다.

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

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

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

// 기울기 보정 필터 추가
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// 전처리된 이미지를 파일로 저장
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

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

다음 단계에 따라 자동 기울이기 수정을 적용하고 텍스트를 인식할 수 있습니다.

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

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

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

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

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

// 인식된 텍스트 표시
System.out.println(result.recognitionText);

Java에서 수동 이미지 기울기 보정

아래 단계에 따라 이미지를 지정된 각도로 회전하여 수동으로 기울이기 각도를 정의할 수 있습니다.

  1. 먼저 AsposeOCR 클래스의 인스턴스를 만듭니다.
  2. 다음으로 PreprocessingFilter 클래스의 개체를 초기화합니다.
  3. 그런 다음, Rotate() 메서드 필터를 사용하여 회전 각도를 추가합니다.
  4. 다음으로 RecognitionSettings 클래스의 인스턴스를 만듭니다.
  5. 그런 다음 PreprocessImage() 메서드를 호출하여 원본 이미지에 필터를 적용합니다.
  6. 마지막으로 인식된 텍스트를 표시합니다.

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

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

// 기울기 보정 필터 추가
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// 전처리된 이미지를 파일로 저장
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Java에서 수동 이미지 기울기 보정으로 이미지 텍스트 인식

다음 단계에 따라 기울이기 각도를 수동으로 정의하고 텍스트를 인식할 수 있습니다.

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

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

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

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

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

// 결과 표시
System.out.println(result.recognitionText);

무료 평가판 라이선스 받기

평가 제한 없이 Java용 Aspose.OCR을 사용해 보려면 무료 임시 라이센스를 얻으십시오.

결론

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

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

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

또한보십시오