영상처리 프로그래밍을 하는데에는
OpenCV라고 하는 오픈소스가 많이 사용됩니다.
뭐 대부분의 오픈소스가 그렇지만 C/C++로 개발되어 있어서
다른 프로그래밍 언어를 사용하는 사람에겐 바로 접근하기가 어렵습니다.
그런데 누군가가 github에 C#을 위한 OpenCVSharp 을 배포하고 있어서 접근이 쉬워졌습니다.
https://github.com/shimat/opencvsharp
위 경로에서 받을 수 있습니다.
요즘은 nuget package로 배포가 되어서 설치가 쉬워졌는데,
저처럼 Visual Studio 2008 을 사용하는 사람에겐 무쓸모네요.ㅋ
위 페이지에 접속해서 스크롤을 쭈우욱 아래로 내리다 보면 릴리즈된 DLL만 받는 링크가 나옵니다.
컴파일 환경에 맞게 x86(32비트)용이나 x64(64비트)용으로 받으시면 되겠네요.
압축을 해제 하시고, 새 프로젝트 생성후에 dll 참조 추가해 주면
기본적인 opencv 사용 가능 상태가 됩니다.
저는 닷넷프레임워크 2.0을 쓰느라 2개밖에 참조를 안했는데, VS 2017 버전에서는 닷넷프레임워크 4.5가 사용가능하므로
더 쉽고 편리하게 사용할 수 있는거 같더군요.
그리고 나서 간단한 동영상 재생 샘플 코드를 아래와 같이 작성해 보았습니다.
// Opens MP4 file (ffmpeg is probably needed) VideoCapture capture = new VideoCapture("aaa.mp4"); int sleepTime = (int) Math.Round(1000 / capture.Fps); using (Window window = new Window("capture")) using (Mat image = new Mat()) // Frame image buffer { // When the movie playback reaches end, Mat.data becomes NULL. while (true) { capture.Read(image); // same as cvQueryFrame if (image.Empty()) break; window.ShowImage(image); Cv2.WaitKey(sleepTime); } }
컴파일도 되고, 실행도 되는데 동영상 재생은 안되더군요...
ffmpeg library가 필요한것 같습니다. (샘플코드에도 써있지요).
dll 찾느라 한참 해맸네요. ㅜㅠ (영알못이라..)
근데 일반적인 ffmpeg dll을 가져다 쓰면 안되고, opencv 용 ffmpeg dll을 가져다 써야하고, 버전도 맞아야 하는것 같습니다.
https://github.com/shimat/opencvsharp 다시 여기로 돌아가서, ffmpeg 라이브러리도 다운받아야 합니다.
현재 ffmpeg dll의 버전은 3.3.1 이네요.
필요한 컴파일 버전에 맞게 해당 폴더안에 있는 dll 또는 lib 파일을 다운받아서 사용하시면
위의 샘플 코드 처럼, 동영상이 재생됩니다.
(dll 파일의 위치, 즉 경로는 실행파일과 같은곳에 넣어두면 됩니다.)
댓글