about open CV
open CV (Open Source Computer Vision Library)는 컴퓨터비전을 위한 알고리즘 입니다.
api cv namespace는 open cv의 모든것이 위치해 있으므로
코드를 짤 때 using namespace cv;를 추가하던지
모든 함수 앞에 cv::를 붙여야 합니다.
opencv는 자동으로 메모리를 관리합니다. 그러나 기본적으로 데이터를 공유한다는 느낌이 있어서 소멸자가 항상 버퍼의 데이터를 지우지는 않습니다. 부연하면, A데이터가 있을 때 A데이터를 가르키는 포인터가 다중으로 있을 수 있습니다. 모든 포인터가 소멸되지 않는다면, 실제 데이터A는 소멸되지 않습니다. 만약 A데이터의 원본을 손상시키지 않고 변형하고 싶다면 Mat::clone api를 사용하세요.
그러나 사용자가 직접 만든 데이터 유형같이 자동 메모리 관리 범주에서 벗어난 것들은 포인터를 이용 할 수 있습니다. ptr template class포인터를 이용하세요. 다음과 같이 이용하세요.
포인터 변수를 직접 선언하는 법 T* ptr = new T(...); Ptr이미 정의된 class를 포인터변수로 선언하고 싶다면 아래처럼 이용하면 됩니다 예를 들면 preptr(new T(...)); Ptr ptr = makePtr (...);
()원래 이미 선언된 class는 자동 메모리 관리 범주에 속해있으나 현재 몇몇 Extra modules의 name들은 다른 라이브러리와 충돌해 직접 ::를 이용하거나 포인터를 이용해야하는 경우가 있다고 알고있습니다)