C#에서 OpenCV 사용하기


C#에서 OpenCV를 사용하는 것은 크게 두가지 방법으로 생각해볼 수 있다.


1. OpenCV 라이브러리 직접 사용하기


OpenCV DLL을 직접 읽어 들여 작성하는 방법으로

기본적으로 C/C++로 작성된 라이브러리를 C#으로 불러들일때 사용하는 방법과 동일하다.


실제로 OpenCV 1.0에 대해 직접 래핑하는 것에 대한 코드도 올라와 있다.

http://www.codeproject.com/Articles/28465/Easy-to-use-Wrapper-DLL-for-Intel-s-OpenCV-Library#install


문제는 데이터타입을 C#에서 사용할 수 있게 변환하는 것과

포인터가 사용된 함수에 대한 포인터 처리

각종 enum등 정의를 새롭게 해줘야 하는 문제가 있는데

이런 과정을 래핑(Wrapping)이라고 한다.


OpenCV 에서 특정한 몇가지 함수만 사용한다면 모를까

OpenCV 처럼 방대한 라이브러리를 일일이 래핑해서 사용하는 것은 쉬운 문제가 아니다.


그래서 선택할 수있는 방법이


2. Wrapping 라이브러리 이용


OpenCV 래핑 라이브러리는


- EmguCV

http://www.emgu.com/


OpenCVSharp

https://github.com/shimat/opencvsharp/


이 두가지가 주로 사용되는 것으로 파악된다.


외국에서는 EmguCV를 많이 사용하는 것 같고


http://www.codeproject.com/Articles/722569/Video-Capture-using-OpenCV-with-Csharp


국내는 OpenCVSharp을 선호하는 경향이 있는 듯 하다.


한글 블러그에서는 OpenCVSharp이 주로 검색된다.


무엇을 사용하던지

결과적으로 OpenCV 라이브러리를 직접 불러서 사용하는 것이라고 볼 수 있기때문에

아주 복잡한 프로그램이 아니라면 큰 차이를 느끼긴 어려울 것 같다.


EmguCV와 OpenCVSharp 에 대한 간단한 소스코드 비교는

http://newprogramming.tistory.com/9

에 포스팅 했으니 참고하시기 바랍니다.



Posted by 휘프노스
,