다양한 경우에 예를 들어 이미지 처리 등에서 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 이미지를 회색조로 변환하는 단계입니다.
- 먼저 Image 클래스를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterCachedImage 객체로 캐스팅합니다.
- RasterCachedImage.cacheData() 메서드를 사용하여 이미지를 캐시합니다.
- RasterCachedImage.grayscale() 메서드를 사용하여 이미지를 회색조로 변환합니다.
- 마지막으로 RasterCachedImage.save(String) 메서드를 사용하여 이미지를 저장합니다.
다음 코드 샘플은 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");
}
입력 이미지
다음은 이 기사에 사용된 샘플 이미지입니다.
그레이스케일로 변환
다음은 회색조로 변환한 후의 이미지입니다.
이진화를 사용하여 이미지를 흑백으로 변환
이진화에서 이미지의 각 픽셀은 두 개의 가능한 값만 가질 수 있습니다. 0 또는 1. 여기서 0은 색상이 없음을 나타내고 1은 색상이 있음을 나타냅니다. Aspose.Imaging은 고정된 이진화와 Otsu 임계값을 사용한 이진화라는 두 가지 이진화 방법을 지원합니다.
Java에서 고정 임계값을 사용한 이진화
다음은 고정 임계값을 사용하여 이미지에 대해 이진화를 수행하는 단계입니다.
- 먼저 Image 클래스를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterCachedImage 개체로 캐스팅합니다.
- RasterCachedImage.cacheData() 메서드를 사용하여 이미지를 캐시합니다.
- RasterCachedImage.binarizeFixed() 메서드를 사용하여 이미지를 흑백으로 변환합니다.
- 마지막으로 RasterCachedImage.save(String) 메서드를 사용하여 이미지를 저장합니다.
다음 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 임계값을 사용하여 이미지를 흑백으로 변환하는 단계입니다.
- 먼저 Image 클래스를 사용하여 이미지를 로드합니다.
- 이미지를 RasterCachedImage 개체로 캐스트합니다.
- RasterCachedImage.cacheData() 메서드를 사용하여 이미지를 캐시합니다.
- RasterCachedImage.binarizeOtsu() 메서드를 사용하여 이미지를 흑백으로 변환합니다.
- 마지막으로 RasterCachedImage.save(String) 메서드를 사용하여 이미지를 저장합니다.
다음 코드 샘플은 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에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문을 공유할 수 있습니다.