웹캠의 영상처리를 위해 자료를 찾아보니 윈도우에서는 다이렉트쇼(DirectShow)를 이용하더군요.
그런데 모노프로젝트를 이용하여 멀티플랫폼을 구성할 예정이라 다이랙트X(Direct X)는 사용할수 없습니다.
그래서 검색해보니 오픈CV(Open CV)를 모노용으로 만들어 쓰라고 하는군요.
언제나 이런문제는 귀찬기 마련이죠 ㅎㅎㅎ
그리고 다행히 누군가 프로젝트를 진행하고 있습니다.
Emgu CV - OpenCV in .NET (C#, VB, C++ and more)
opencvsharp - OpenCV wrapper for .NET Framework
저는 'opencvsharp'를 사용하겠습니다.
Emgu CV가 유명하고 좋다고는 하는데....
'opencvsharp'는 한국커뮤니티가 잘되있고 닷넷에 익숙한 사람한테 더 편하게 되어 있다고 해서입니다 ㅎㅎㅎ
(참고 : C# - OpenCvSharp 카페 )
**** 주의 ****
최신버전에서 '.ToBitmap();' 메소드가 없어졌습니다.
2.4.5버전을 사용하셔야 합니다.
시간나는대로 수정하도록 하겠습니다.
첨부된 프로젝트파일이 깨진관계로 임시로 .dll을 올렸습니다.
(티스토리가 zip으로 분할압축한걸 자꾸 악성코드로 인식하네요-_-;)
근데 이게 몇버전이였는지 모르겠습니다 ㅡ.-;;
필요한 파일은 'OpenCV'와 'opencvsharp'입니다.
'Open CV버전과 'opencvsharp'의 버전은 같아야 합니다.
2014년 1월 2일 기준으로 'opencvsharp'의 최신버전은 2.4.5입니다.
opencvsharp - Downloads
개발할 어플리케이션은 32비트이기 때문에 'x86'버전으로 받습니다.
최신버전이 아닌 버전을 받으려면 'Downloads'로 들어가 원하는 버전을 찾아야 합니다.
OpenCV - DOWNLOADS
2.4.5버전에서 윈도우 버전을 받습니다.
윈폼프로젝트를 생성합니다.
그리고 참조를 합니다.
(1) 지금 당장 쓸 내용은 'OpenCvSharp.dll'에 들어 있으므로 'OpenCvSharp.dll'만 참조 합니다.
(2) 이제 빌드를 한번 합니다.
(3)빌드를 한후 개발중인 프로젝트의 폴더로 들어가 'bin'폴더를 찾습다,
'bin'폴더 안에 자신이 테스트할 빌드구성에 해당하는 폴더로 들어 갑니다.
(4) 여기에 다운받은 opencv에서
build > x86 > vc11 > bin
를 들어 갑니다.
(64비트인 경우 x64를 받아야 겠죠?)
(5) (4)에 들어 있는 모든 dll을 (3)의 폴더로 복사 합니다.
이렇게 하면 준비가 끝났습니다.
Form1에 픽처박스를 추가한후 폼을 더블클릭하여 Load이벤트를 생성해 줍니다.
생성된 Load이벤트에 다음 코드를 넣습니다.
private void Form1_Load(object sender, EventArgs e) { IplImage img = Cv.LoadImage("imgTest.jpg"); pictureBox1.Image = img.ToBitmap(); img.Dispose(); }
Cv.LoadImage("imgTest.jpg");
이 구분으로 하드에 있는 이미지를 불러 옵니다.
자신이 가지고 있는 이미지의 경로를 넣어 주세요.
이제 실행해 보겠습니다.
이미지가 잘나오네요.
만약 여기서 'opencvsharp'관련 에러가 난다면 '2. 설치 하기'의 폴더에 'opencvsharp'의 모든 dll을 옮겨줍니다.
프로젝트 파일입니다.
OpenCV_Image
문제는 모노에서 잘돌아가냐인데.....
모노에서 사용하려면 컴파일을 해야 한다고 합니다.
일단 해봐야 알겠네요 ㅡ.-;;;