[OpenCV 강의] 1. OpenCV란 무엇인가?

By New AI Engineer - 1월 13, 2019

1. OpenCV가 무엇인가요?


Open Source Computer Vision의 약자로 다양한 영상/동영상 처리에 사용할 수 있는 오픈소스 라이브러리입니다. 



OpenCV는 BSD 라이센스 하에 배포되므로 학술적 및 상업적 용도로 무료입니다. 따라서 OpenCV를 이용하여 제품을 만들어서 수익이 나도 소스코드를 공유, 라이센스 비용 지불을 하지 않아 많은 기업이나 개인 개발자가 사용하기도 합니다.

"BSD (Berkeley Software Distribution) 라이선스는 소프트웨어 라이선스라고도 할 수 없을 만큼 미약하여, 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있다. 다만 수정본의 재배포는 의무적인 사항이 아니므로 BSD 라이선스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있다."

또한 C++, C, Python 및 Java와 같은 다양한 인터페이스를 지원하며 Windows, Linux, Mac OS, iOS 및 Android같은 다양한 OS를 지원합니다.

OpenCV는 알고리즘 상으로 계산 효율성과 실시간 응용 프로그램에 중점을 두고 설계되었기 때문에 간단하게 OpenCV에서 제공되는 API를 사용하여 코딩하여도 실시간 프로세싱이 가능한 어플리케이션을 만들 수 있기 때문에 최적화나 알고리즘을 생각하지 않고도 품질 좋은 상용 프로그램을 만들 수 있습니다.

또한 OpenCV는 멀티 코어 프로세싱을 지원하기 때문에 다양한 상황에 응용이 가능합니다.

interactive art나 image stitching, 공장의 불량품 검출 시스템 및 로봇공학 등 다양한 영상처리 시스템에서 이용되고 있습니다.



2. 그래서 뭘 할 수 있는데요?


그림 1. 윤곽선 검출

그림 2. 노이즈 제거

그림 3. 이미지 스티칭을 이용한 파노라믹 사진 제작

대표적인 예시만 올렸지만 이외에도 영상과 관련된 많은 프로세싱을 지원합니다.

영상관련 처리할 수 있는 여러가지 API와 툴을 제공하고 있어서 영상처리 관련 코드를 작성할때 많이 사용합니다.

3. 참고 문헌


[1] Learning Image Processing with OpenCV
[2] https://ko.wikipedia.org/wiki/BSD_%ED%97%88%EA%B0%80%EC%84%9C, BSD Wiki

  • Share:

You Might Also Like

3 Comments

  1. 답글
    1. 신호처리에 관심이 있으시면 도전해보세요

      삭제
  2. 안녕하세요?

    좋은글 정말 감사합니다.
    이분야에 관심이 많아 open CV 배우기 시작했는데요.

    요즘은 머신비젼관련 검사기를 게발하려는데 궁금한것들을
    질문을 드려두 될련지요?

    예를 들어 템플릿 이미지와 테스트할 이미지(제품)를 비교해서 불량위치를
    자동으로 찾아내는 것입니다

    감사합니다

    답글삭제