OpenCV 역사
OpenCV는 1999년 인텔(Intel)에서 개발된 IPL(Image Primitive Library)을 기반으로 만들어지기 시작했습니다. 이후 2000년 일반에 공개되어 오픈 소스로서 개발이 진행되었고, 2006년에 OpenCV 1.0 버전이 정식으로 배포되었습니다. OpenCV 1.0은 C 언어를 기반으로 구현되었습니다. 그러므로 많은 컴퓨터 비전 알고리즘이 주로 구조체와 함수로 구현되었으며, 영상 데이터는 IplImage라는 이름의 구조체를 이용하여 표현하였습니다. OpenCV 1.0 버전이 나온 지 3년 후인 2009년에는 OpenCV 2.0이 발표되었습니다. OpenCV 2.0은 C 언어 대신 C++ 인터페이스를 채택하였고, Mat라는 이름의 클래스를 사용하여 영상 데이터를 표현하기 시작했습니다. C++ 클래스를 사용함으로써 메모리 관리가 좀 더 수월해지고 소스 코드 작성이 더욱 편리해졌습니다. 이후 지속적인 소규모 버전업이 진행되면서 새로운 알고리즘 구현 함수, 성능 개선, 병렬 처리 기능 강화 등이 추가되었습니다.
OpenCV 3.0은 2015년 6월에 발표되었습니다. OpenCV 3.0 버전에서는 OpenCV 프로젝트 구조가 크게 개선되었고 전반적인 성능이 향상되었습니다. OpenCL 사용성을 크게 확대한 T-API(Transparent API)를 지원하기 시작하였고, 유료로 사용해야 했던 인텔 IPP(Integrated Performance Primitives) 라이브러리 일부를 OpenCV에서 무료로 사용할 수 있게 되었습니다. 2017년 8월에 발표된 OpenCV 3.3 버전에서는 최근에 각광받고 있는 심층 신경망을 지원하는 DNN 모듈이 기본 소스에 포함되기 시작하였습니다. 또한 AVX/AVX2/SSE4.x 최적화가 추가되었고, 최신 C++11 문법도 지원하기 시작하였습니다.