RGB 이미지를 회색조 Java로

다양한 경우에 예를 들어 이미지 처리 등에서 RGB 이미지를 회색조 또는 흑백으로 변환해야 할 수 있습니다. 이에 따라 이 기사에서는 Java를 사용하여 RGB 이미지를 회색조로 변환하는 방법을 배웁니다. . 또한 이 기사에서는 이미지의 회색조 및 이진화를 명시적으로 다룹니다.

이미지를 그레이스케일로 변환하는 Java API

RGB 이미지를 회색조로 변환하기 위해 Java용 Aspose.Imaging을 사용합니다. 널리 사용되는 이미지 형식을 원활하게 조작할 수 있는 Java 이미지 처리 API입니다. API를 다운로드하거나 다음 Maven 구성을 사용하여 설치할 수 있습니다.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.7</version>
    <classifier>jdk16</classifier>
</dependency>

Java에서 이미지를 회색조로 변환

다음은 Java에서 RGB 이미지를 회색조로 변환하는 단계입니다.

다음 코드 샘플은 Java를 사용하여 이미지를 회색조로 변환하는 방법을 보여줍니다.

// Image 인스턴스에서 이미지 로드
try (Image image = Image.load("aspose-logo.jpg"))
{
    // 이미지를 RasterCachedImage로 캐스트
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    
    // 이미지가 캐시되었는지 확인
    if (!rasterCachedImage.isCached()) {
        // 아직 캐시되지 않은 경우 캐시 이미지
        rasterCachedImage.cacheData();
    }
    // 이미지를 회색조 표현으로 변환
    rasterCachedImage.grayscale();
    
    // 결과 이미지 저장
    rasterCachedImage.save("Grayscaling_out.jpg");
}

입력 이미지

다음은 이 기사에 사용된 샘플 이미지입니다.

이미지를 회색조 Java로

그레이스케일로 변환

다음은 회색조로 변환한 후의 이미지입니다.

회색조 이미지

이진화를 사용하여 이미지를 흑백으로 변환

이진화에서 이미지의 각 픽셀은 두 개의 가능한 값만 가질 수 있습니다. 0 또는 1. 여기서 0은 색상이 없음을 나타내고 1은 색상이 있음을 나타냅니다. Aspose.Imaging은 고정된 이진화와 Otsu 임계값을 사용한 이진화라는 두 가지 이진화 방법을 지원합니다.

Java에서 고정 임계값을 사용한 이진화

다음은 고정 임계값을 사용하여 이미지에 대해 이진화를 수행하는 단계입니다.

다음 Java 코드는 이미지에 이진화를 적용하고 흑백으로 변환합니다.

// Image 인스턴스에서 이미지 로드
try (Image image = Image.load("aspose-logo.jpg"))
{
    // 이미지를 RasterCachedImage로 캐스트하고 이미지가 캐시되었는지 확인                
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // 아직 캐시되지 않은 경우 캐시 이미지
        rasterCachedImage.CacheData();
    }

    // 미리 정의된 고정 임계값으로 이미지를 이진화하고 결과 이미지를 저장합니다.                
    rasterCachedImage.binarizeFixed((byte) 100);
    rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}

Java에서 Otsu 임계값을 사용한 이진화

다음은 Otsu 임계값을 사용하여 이미지를 흑백으로 변환하는 단계입니다.

다음 코드 샘플은 Java를 사용하여 Otsu 임계값을 사용하여 이미지를 흑백으로 변환하는 방법을 보여줍니다.

// Image 인스턴스에서 이미지 로드
try (Image image = Image.load("aspose-logo.jpg"))
{
    // 이미지를 RasterCachedImage로 캐스트하고 이미지가 캐시되었는지 확인
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    if (!rasterCachedImage.isCached())
    {
        // 아직 캐시되지 않은 경우 캐시 이미지
        rasterCachedImage.cacheData();
    }
    // Otsu 임계값으로 이미지 이진화
    rasterCachedImage.binarizeOtsu();
  
    // 결과 이미지 저장
    rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}

무료 API 라이선스 받기

평가 제한 없이 API를 사용하기 위해 임시 무료 라이선스 받기를 할 수 있습니다.

결론

이 기사에서는 Java를 사용하여 이미지를 회색조 및 흑백으로 변환하는 방법을 배웠습니다. 또한 고정 또는 Otsu 임계값이 있는 이미지에 이진화를 적용하는 방법을 살펴보았습니다. 또한 문서를 사용하여 Java 이미지 처리 API에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문을 공유할 수 있습니다.

또한보십시오