이전 블로그 게시물에서 이미지에 흐림 효과를 추가하는 방법을 시연했습니다. 오늘은 이미지의 노이즈를 제거하고 부드럽게 하는 데 일반적으로 사용되는 중간 필터와 위너 필터를 적용하는 방법을 보여 드리겠습니다. 따라서 Java에서 프로그래밍 방식으로 이미지에 중앙값 및 위너 파일러를 적용하는 방법을 살펴보겠습니다.
중간값 및 Wiener 이미지 필터를 적용하는 Java API - 무료 다운로드
이미지에 중앙값 및 위너 필터를 적용하려면 Java용 Aspose.Imaging을 사용합니다. Java 애플리케이션 내에서 이미지를 조작하는 강력한 이미지 편집 API입니다. API를 다운로드하거나 다음 Maven 구성을 사용하여 설치할 수 있습니다.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>22.9</version>
</dependency>
Java에서 이미지에 중앙값 필터 적용
중앙값 필터는 비선형 디지털 필터링 기술로 이미지의 노이즈를 제거하는 데 널리 사용됩니다. 다음은 Java에서 이미지에 중간 필터를 적용하는 단계입니다.
- 먼저 Image.load() 메서드를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterImage 유형으로 캐스트합니다.
- MedianFilterOptions 클래스의 인스턴스를 생성하고 사각형 크기로 초기화합니다.
- RasterImage.filter(Rectangle, MedianFilterOptions) 메서드를 사용하여 중앙값 필터를 적용합니다.
- 마지막으로 RasterImage.save() 메서드를 사용하여 결과 이미지를 저장합니다.
다음 코드 샘플은 Java에서 이미지에 중간 필터를 적용하는 방법을 보여줍니다.
// 노이즈 이미지 로드
Image image = Image.load("jack.jpg");
// 이미지를 RasterImage로 캐스트
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// MedianFilterOptions 클래스의 인스턴스를 만들고 크기를 설정합니다.
MedianFilterOptions options = new MedianFilterOptions(4);
// RasterImage 객체에 MedianFilterOptions 필터를 적용합니다.
rasterImage.filter(image.getBounds(), options);
// 결과 이미지 저장
image.save("Jac_median_denoise.jpg");
아래는 중앙값 필터를 적용하기 전과 후의 이미지입니다.
Java에서 이미지에 Gauss Wiener 필터 적용
Gauss wiener는 부가적인 노이즈와 흐림을 최소화하여 이미지 그레이딩에 일반적으로 사용되는 또 다른 방법입니다. 다음은 Java에서 이미지에 gauss wiener 필터를 적용하는 단계입니다.
- 먼저 Image.load() 메서드를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterImage 유형으로 캐스트합니다.
- GaussWienerFilterOptions 클래스의 인스턴스를 생성하고 반경 크기와 부드러운 값으로 초기화합니다.
- (선택 사항) 회색조 이미지를 얻으려면 GaussWienerFilterOptions.setGrayscale(true) 메서드를 사용합니다.
- RasterImage.filter(Rectangle, GaussWienerFilterOptions) 메서드를 사용하여 구아스 위너 필터를 적용합니다.
- 마지막으로 RasterImage.save() 메서드를 사용하여 결과 이미지를 저장합니다.
다음 코드 샘플은 Java의 이미지에 gauss wiener 필터를 적용하는 방법을 보여줍니다.
// 이미지 로드
Image image = Image.load("jack.jpg");
// 이미지를 RasterImage로 캐스트
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// GaussWienerFilterOptions 클래스의 인스턴스를 생성하고 반경 크기와 부드러운 값을 설정합니다.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);
// RasterImage 객체에 GaussWienerFilterOptions 필터를 적용합니다.
rasterImage.filter(image.getBounds(), options);
// 결과 이미지 저장
image.save("Jac_gauss_weiner.jpg");
아래는 그레이스케일 옵션으로 구아스 위너 필터를 적용하기 전과 후의 이미지입니다.
다음은 그레이스케일 없이 구아스 위너 필터를 적용하기 전과 후의 이미지입니다.
Java에서 이미지에 Motion Wiener 필터 적용
모션 위너 필터는 움직이는 물체로 인해 발생하는 이미지의 흐릿함을 제거하는 데 사용됩니다. 다음은 Java에서 이미지에 모션 위너 필터를 적용하는 단계입니다.
- 먼저 Image.load() 메서드를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterImage 유형으로 캐스트합니다.
- MotionWienerFilterOptions 클래스의 인스턴스를 생성하고 길이, 부드러운 값 및 각도로 초기화합니다.
- RasterImage.filter(Rectangle, MotionWienerFilterOptions) 메서드를 사용하여 모션 위너 필터를 적용합니다.
- 마지막으로 RasterImage.save() 메서드를 사용하여 결과 이미지를 저장합니다.
다음 코드 샘플은 Java에서 이미지에 모션 위너 필터를 적용하는 방법을 보여줍니다.
// 이미지 로드
Image image = Image.load("jack.jpg");
// 이미지를 RasterImage로 캐스트
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// MotionWienerFilterOptions 클래스의 인스턴스를 만들고 길이, 부드러운 값 및 각도를 설정합니다.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(참);
// MotionWienerFilterOptions 필터를 RasterImage 객체에 적용합니다.
rasterImage.filter(image.getBounds(), options);
// 결과 이미지 저장
image.save("Jac_motion_weiner.jpg");
Java Median 및 Wiener 이미지 필터링 API - 무료 라이선스 받기
임시 무료 라이선스 받기 평가 제한 없이 이미지에 중앙값 및 위너 필터를 적용할 수 있습니다.
결론
이 기사에서는 Java의 이미지에 중앙값 및 위너 필터를 적용하는 방법을 배웠습니다. 또한 이미지에서 움직이는 물체의 노이즈를 줄이는 방법을 다루었습니다. Java 애플리케이션에서 이러한 기능을 쉽게 사용하여 이미지 편집 기능을 통합할 수 있습니다.
더 읽기
문서를 사용하여 Java 이미지 처리 API에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문을 공유할 수 있습니다.