![Java의 이미지에 중앙값 및 위너 필터 적용](images/Apply-Median-Wiener-Filters-to-Image.png#center)
이전 블로그 게시물에서 이미지에 흐림 효과를 추가하는 방법을 시연했습니다. 오늘은 이미지의 노이즈를 제거하고 부드럽게 하는 데 일반적으로 사용되는 중간 필터와 위너 필터를 적용하는 방법을 보여 드리겠습니다. 따라서 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");
아래는 중앙값 필터를 적용하기 전과 후의 이미지입니다.
![이미지 자바에 중앙값 필터 적용](images/Apply-Median-Filter-to-Image.png#center)
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");
아래는 그레이스케일 옵션으로 구아스 위너 필터를 적용하기 전과 후의 이미지입니다.
![이미지 회색조에 Gauss Weiner 필터 적용](images/Apply-Gauss-Weiner-Filter-to-Image.png#center)
다음은 그레이스케일 없이 구아스 위너 필터를 적용하기 전과 후의 이미지입니다.
![이미지에 Gauss Weiner 컬러 필터 적용](images/Apply-Gauss-Weiner-Color-Filter-to-Image.png#center)
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에서 이미지에 Motion Weiner 필터 적용](images/Apply-Motion-Weiner-Filter-to-Image.png#center)
Java Median 및 Wiener 이미지 필터링 API - 무료 라이선스 받기
임시 무료 라이선스 받기 평가 제한 없이 이미지에 중앙값 및 위너 필터를 적용할 수 있습니다.
결론
이 기사에서는 Java의 이미지에 중앙값 및 위너 필터를 적용하는 방법을 배웠습니다. 또한 이미지에서 움직이는 물체의 노이즈를 줄이는 방법을 다루었습니다. Java 애플리케이션에서 이러한 기능을 쉽게 사용하여 이미지 편집 기능을 통합할 수 있습니다.
더 읽기
문서를 사용하여 Java 이미지 처리 API에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문을 공유할 수 있습니다.