WPF OpenCV 영상처리 프로젝트 #2: OpenCvSharp 설치 및 MVVM 구조 설계

지난 포스팅에서 WPF OpenCV 프로젝트의 기본 틀을 만들었습니다. 이제 WPF OpenCV 프로젝트를 위한 핵심 엔진인 OpenCV 라이브러리를 설치하고, WPF의 디자인 패턴인 MVVM 구조를 잡는 작업을 진행하겠습니다 .

현업에서 검증 장비를 개발할 때, 알고리즘 파라미터를 UI에 즉각적으로 반영하는 것은 매우 중요합니다. 오늘 작성할 코드는 WPF OpenCV 프로젝트에서 반응 형 UI의 기초가 되는 부분입니다.

WPF OpenCV 프로젝트를 위한 OpenCvSharp4 설치 (NuGet)

C# WPF 환경에서 OpenCV를 사용하기 위해 가장 널리 쓰이는 OpenCvSharp4를 설치하겠습니다. Visual Studio의 NuGet 패키지 관리자를 사용하면 간편하게 설치할 수 있습니다 .

메뉴에서 **[NuGet 패키지 관리]**를 선택합니다 .
솔루션 탐색기에서 프로젝트(Vision_OpenCV_App)를 우 클릭합니다.

WPF OpenCV 프로젝트 NuGet 패키지 설치 화면.

‘찾아보기’ 탭에서 OpenCvSharp4를 검색합니다 .

WPF OpenCV 프로젝트 - OpenCvSharp4 Package 검색

검색 결과 중 아래 3가지 패키지를 모두 설치합니다 .

WPF OpenCV 프로젝트 - NuGet 패키지 검색 및 설치 화면

1. OpenCvSharp4: 핵심 라이브러리
2. OpenCvSharp4.runtime.win: 윈도우용 런타임 (필수)
3. OpenCvSharp4.WpfExtensions: WPF 전용 확장 기능 (이미지 변환 등)

설치가 완료되면 솔루션 탐색기의 [종속성] > [패키지] 목록에서 설치된 항목들을 확인할 수 있습니다 .

MVVM 패턴을 위한 프로젝트 파일 구성

WPF의 장점을 극대화하기 위해 MVVM(Model-View-ViewModel) 패턴으로 프로젝트를 구성하겠습니다 . 유지보수와 확장성을 위해 꼭 필요한 구조입니다.

솔루션 탐색기에서 프로젝트 우클릭 후 **[추가] > [새 항목]**을 눌러 아래 3개의 클래스 파일(.cs)을 생성합니다 .

  • AlgorithmParameters.cs: 알고리즘 변수 및 속성 관리
  • OpenCVService.cs: 실제 영상처리 로직 담당
  • MainViewModel.cs: UI와 데이터를 연결하는 뷰모델
WPF OpenCV 프로젝트  - 파일이 추가된 솔루션 탐색기 화면

알고리즘 파라미터 클래스 구현 (AlgorithmParameters.cs)

영상처리에서 가장 빈번하게 수정되는 것이 ‘임계값(Threshold)’ 같은 파라미터입니다. 이 값들이 변할 때 UI(슬라이더 등)가 즉시 반응하도록 INotifyPropertyChanged 인터페이스를 구현해 보겠습니다 .

아래 코드를 AlgorithmParameters.cs에 작성합니다.

코드 핵심 포인트: 왜 이렇게 짰을까?

1. [CallerMemberName]의 마법 OnPropertyChanged("ThresholdValue") 처럼 속성 이름을 일일이 문자열로 적지 않아도 됩니다. 컴파일러가 “아, 이 함수를 호출한 놈이 ThresholdValue구나” 하고 알아서 이름을 채워줍니다. 오타로 인한 버그를 획기적으로 줄여줍니다.

2. 값이 아닌 ‘이름’을 알린다 OnPropertyChanged는 변경된 **값(숫자)**을 전달하는 게 아니라, “ThresholdValue라는 이름을 가진 친구가 변했어요!”라고 소문을 내는 역할을 합니다 . 소문을 들은 WPF UI(슬라이더 등)가 “어? 나랑 연결된 앤데?” 하고 다시 찾아와서 최신 값을 가져가 화면을 갱신하는 원리입니다

🚀 다음 단계

이제 알고리즘 파라미터를 담을 그릇을 만들었습니다. 다음 포스팅에서는 실제 영상처리 로직을 담당할 OpenCVService.cs 코드를 작성하고, 이미지를 불러와서 처리하는 기능을 구현해 보겠습니다 .

궁금한 점은 댓글로 남겨주세요!

댓글 남기기