C++에서 시작해보는 OpenCV



What is OpenCV?

OpenCV는 Open Computer Vision의 약자로, 실시간 이미지 처리에 중점을 둔 라이브러리이며, C, C++, Python 언어에서 사용할 수 있습니다.

본래는 Intel이 주도적으로 개발한 라이브러리 였으나 현재는 Intel이 전혀 관여하지 않고 있고, Open Source Library입니다.


본래 이 라이브러리의 목적은 기계의 시각에 해당하는 부분을 연구하는 것이 목적이었고, 현재는 머신 러닝에서의 이미지 인식, 이미지 검색 등에 이용되고 있으며 이 외에 CCTV에서 범죄자를 캐치하거나 이상 행동 요령을 감시하고 있는 전문 분야 등에서 사용하고 있기도 합니다.



How to use OpenCV?

OpenCV는 Python, C, C++에서 사용할 수 있습니다. Python 라이브러리, C/C++ 라이브러리를 제공하며 아래의 버튼을 클릭해 OpenCV 홈페이지에서 OS별로 제공받을 수 있습니다. 지원하는 OS는 OS X, Linux, Windows, iOS, Android를 지원합니다.


Go to OpenCV site


최근 OpenCV는 NVIDIA CUDA를 지원하여 GPU를 사용한 이미지/영상처리도 가능해졌습니다.


OpenCV for Github


OpenCV는 Github에 무료로 공개 되어 있어 자신이 처리하고자 하는 코드 작성 후, 라이브러리에 어떤 문제가 발생하면 여러분들이 직접 이를 수정하고, 기여할 수 있습니다.



C++ for OpenCV / OpenCV Version

저는 OpenCV를 C++ 언어로 시작하였고, 이 블로그에도 C++와 관련되어 블로그 포스트로 남기고자 합니다. (추후 Python을 사용해 Tensorflow에 적용하게 되면, 또 포스팅 할 수도 있겠지만, 일단 지금은..) 


OpenCV 버전은 2.x 버전과 3.x 버전으로 나뉩니다. (공교롭게도 두 버전 동시에 사용이 안 되는 것 같습니다..)

Linux의 경우 최신 버전의 OpenCV인 3.1.x 버전을 권장하고, GPU가 있다면, 해당 GPU에 맞춰, 드라이버와 CUDA가 필요합니다. CMake를 이용해 빌드해서 설치해야 합니다.

Windows는 잘 모르겠지만, 아마 똑같이 CMake를 사용할 것이고, GPU를 사용하는 듯했습니다.


OpenCV 2.4버전은 OpenCV 라이브러리에서 가장 안정적인 버전으로 알려져 있으며 추천하는 버전입니다. 하지만 저는 Ubuntu 버전과 특성상 3.1 버전을 사용하고 있고, 설치하는 방법은 추후에 Ubuntu 게시판에 올릴 예정입니다.


OpenCV 2 버전, 3 버전 모두 C++를 사용할 수 있으며 OpenCV를 만약 처음 사용해보시려는 개발자라면, C++에 대한 지식과 개념이 충분히 갖춰진 후 사용해보기를 권장합니다. 적어도 STL은 충분히 떼여하지 않을까 생각합니다.



포스팅과 향후..

OpenCV는 현재 제가 학부에서 배우고 있는 것 중 하나입니다. 예전에도 이 라이브러리를 쓰려고 시도햇었지만 매우 어려운 탓, 그리고 개발하는 데 가장 문제가 컸었던 것은 바로 영상에 대한 기본 지식 부족이 문제였습니다. (사실 지금도 그러합니다... ㅠㅠ)


개념과 더불어 나중에 필자인 제가 봤을 때도 이해하기 쉽도록 작성할 예정이며 설치하는 방법, 기본적으로 다루는 방법 등을 간략하게나마 포스팅 할 것입니다.

TAGS.
comments powered by Disqus

Tistory Comments 0