메모리 스토리지

객체를 동적으로 생성하고자 할때 OpenCV에서 메모리를 할당하는 방법

메모리 블록들의 연결 리스트 이며, 연속된 메모리 블록들의 집합을 신속하게 할당 또는 해제 할수 있다.


cvCreateMemStorage()

CvMemStorage* cvCreateMemStorage(int block_size=0); 

메모리 스토리지를 생성하기 위해 사용된다. 이 함수는 저장공간 내 메모리 블록들의 크기를 알려주는 block_size를 인자로 갖는데 이 값이 0으로 설정되면 64KB의 기본 블록 크기가 사용된다. 메모리 스토리지가 생성된후 스토리지의 포인터값을 반환한다.


cvReleaseMemStorage()

 void cvReleaseMemStorage(CvMemStorage** storage);

메모리 스토리지에 대한 포인터를 입력받고, 해당 저장공간을 해제한다.


cvClearMemeStorage()

 void cvClearMemStorage(CvMemStorage* storage);

메모리 스토리지를 재사용할 수 있게 만드는 역할을 한다. cvReleaseMemeStoreage()함수와는 달리 메모리 공간을 해제 하지 않는다.


cvMemStorageAlloc()

 void* cvMemStorageAlloc(CvMemStorage* storage, size_t size);

기존에 생성된 메모리 스토리지에 메모리 버퍼를 새로 할당하기 위해 사용된다. 이 함수는 malloc()함수가 힙(heap)영역에 메모리를 할당하는 것과 동일하게 연속적인 메모리 블록을 할당한다. 메모리 스토리지에 대한 포인터와 할당에 필요한 바이트 수를 인자로 받으며, void* 타입의 포인터를 반환한다.

'Developer > OpenCV' 카테고리의 다른 글

외곽선 검출하기  (2) 2013.01.13
시퀀스(Sequence)  (1) 2013.01.13
임계값(Threshold)  (1) 2013.01.10
피라미드 영상(이미지 피라미드, Image Pyramid)  (0) 2013.01.10
HighGUI  (0) 2013.01.09
Posted by No names
,