
이미지 편집은 추가 처리를 위해 이미지를 조작하기 위해 다양한 응용 프로그램에서 사용됩니다. 우리는 자르기, 회전, 흐리게 처리 등의 일련의 블로그를 작성했으며 이는 애플리케이션에서 이미지 편집 기능을 구현하는 데 유용합니다. 이 기사에서는 이미지의 노이즈를 제거하고 부드럽게 하는 데 일반적으로 사용되는 중앙값 및 위너 필터를 적용하는 방법을 보여줍니다. 따라서 C#에서 프로그래밍 방식으로 이미지에 중앙값 및 위너 파일러를 적용하는 방법을 살펴보겠습니다.
중앙값 및 Wiener 이미지 필터를 적용하는 C# API - 무료 다운로드
Aspose.Imaging for .NET는 .NET 애플리케이션에서 이미지 편집 기능을 구현하는 놀라운 API입니다. 이 API를 사용하여 이미지에 중앙값 및 위너 필터를 적용합니다. API를 다운로드하거나 NuGet에서 설치할 수 있습니다.
PM> Install-Package Aspose.Imaging
C#의 이미지에 중앙값 필터 적용
중앙값 필터는 이미지의 노이즈를 줄이는 데 사용되는 비선형 디지털 필터링 기술입니다. 다음은 C#에서 이미지에 중앙값 필터를 적용하는 단계입니다.
- 먼저 Image.Load() 메서드를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterImage 유형으로 캐스트합니다.
- MedianFilterOptions 클래스의 인스턴스를 생성하고 사각형 크기로 초기화합니다.
- RasterImage.Filter(Rectangle, MedianFilterOptions) 메서드를 사용하여 중앙값 필터를 적용합니다.
- 마지막으로 RasterImage.Save() 메서드를 사용하여 결과 이미지를 저장합니다.
다음 코드 샘플은 C#의 이미지에 중앙값 필터를 적용하는 방법을 보여줍니다.
// 노이즈 이미지 로드
using (Image image = Image.Load("jack.jpg"))
{
// 이미지를 RasterImage로 캐스트
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// MedianFilterOptions 클래스의 인스턴스를 만들고 크기를 설정합니다.
MedianFilterOptions options = new MedianFilterOptions(4);
// 필터 적용 및 이미지 저장
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
아래는 중앙값 필터를 적용하기 전과 후의 이미지입니다.

C#의 이미지에 가우스 위너 필터 적용
이미지에서 부가적인 노이즈와 흐림을 최소화하기 위해 일반적으로 사용되는 또 다른 방법은 가우스 위너입니다. 다음은 C#의 이미지에 가우스 위너 필터를 적용하는 단계입니다.
- 먼저 Image.Load() 메서드를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterImage 유형으로 캐스트합니다.
- GaussWienerFilterOptions 클래스의 인스턴스를 생성하고 반경 크기와 부드러운 값으로 초기화합니다.
- (선택 사항) 회색조 이미지를 얻으려면 GaussWienerFilterOptions.Grayscale 속성을 true로 설정합니다.
- RasterImage.Filter(Rectangle, GaussWienerFilterOptions) 메서드를 사용하여 가우스 위너 필터를 적용합니다.
- 마지막으로 RasterImage.Save() 메서드를 사용하여 결과 이미지를 저장합니다.
다음 코드 샘플은 C#의 이미지에 가우스 위너 필터를 적용하는 방법을 보여줍니다.
// 노이즈 이미지 로드
using (Image image = Image.Load("jack.jpg"))
{
// 이미지를 RasterImage로 캐스트
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// GaussWienerFilterOptions 클래스의 인스턴스를 만들고 반지름 크기와 부드러운 값을 설정합니다.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// RasterImage 개체에 MedianFilterOptions 필터를 적용하고 결과 이미지를 저장합니다.
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
아래는 그레이스케일 옵션으로 가우스 위너 필터를 적용하기 전과 후의 이미지입니다.

다음은 그레이스케일 없이 가우스 위너 필터를 적용하기 전과 후의 이미지입니다.

C#의 이미지에 모션 위너 필터 적용
모션 위너 필터는 움직이는 물체로 인해 발생하는 이미지의 흐릿함을 제거하는 데 사용됩니다. 다음은 C#에서 이미지에 모션 위너 필터를 적용하는 단계입니다.
- 먼저 Image.Load() 메서드를 사용하여 이미지를 로드합니다.
- 그런 다음 이미지를 RasterImage 유형으로 캐스트합니다.
- MotionWienerFilterOptions 클래스의 인스턴스를 생성하고 길이, 부드러운 값 및 각도로 초기화합니다.
- RasterImage.Filter(Rectangle, MotionWienerFilterOptions) 메서드를 사용하여 모션 위너 필터를 적용합니다.
- 마지막으로 RasterImage.Save() 메서드를 사용하여 결과 이미지를 저장합니다.
다음 코드 샘플은 C#의 이미지에 모션 위너 필터를 적용하는 방법을 보여줍니다.
// 노이즈가 있는 이미지 로드
using (Image image = Image.Load("jack.jpg"))
{
// 이미지를 RasterImage로 캐스트
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// MotionWienerFilterOptions 클래스의 인스턴스를 만들고 길이, 부드러운 값 및 각도 설정
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// RasterImage 개체에 MedianFilterOptions 필터를 적용하고 결과 이미지를 저장합니다.
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}

C# Median 및 Wiener 이미지 필터링 API - 무료 라이선스 받기
임시 무료 라이선스 받기 평가 제한 없이 이미지에 중앙값 및 위너 필터를 적용할 수 있습니다.
결론
이 문서에서는 C#의 이미지에 중앙값 및 위너 필터를 적용하는 방법을 배웠습니다. 또한 이미지에서 움직이는 물체의 노이즈를 줄이는 방법을 다루었습니다. C# 애플리케이션에서 이러한 기능을 쉽게 사용하여 이미지 편집 기능을 통합할 수 있습니다.
더 읽기
문서를 사용하여 .NET 이미지 처리 API에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문을 공유할 수 있습니다.