본문 바로가기

영상처리

openCV :: IplImage 구조체


 IplImage란? OpenCV에서 영상 정보를 저장하고 처리하기 위해 사용하는 자료형

 

 typedef struct_IplImage

 {

int nSize;                      //sizeof(IplImage)

int ID;                           //version(=0)

int nChannels;               //색상 평면의 개수. gray image면 1, color image면 3

int alphaChannel;          //ignored by OpenCV

int depth;                      //픽셀을 표현하는 자료형에 대한 정보. IPL_DEPTH_8U -> unsigned char형

char colorModel[4];      //ignored by OpenCV

char channelseq[4];     //ditto

int dataOrder;                //0->interleaved color channels, 1->separate color channels.

int origin;                      //0->영상이 정상적으로 저장됨. 1->상하 반전으로 저장됨.

int align;                       //Alignment of image rows(4 or 8). OpenCV ignores it and uses widthStep instead.

int width;                       //image 가로 픽셀 수

int height;                      //image 세로 픽셀 수

struct_IplROI *roi;                   //image ROI. when it is not NULL, this specifies image region to process

struct_IplImage *maskROI;       //must be NULL in OpenCV

void *imageId;                       //ditto

struct_IplTileInfo *tileInfo;        //ditto

int imageSize;                       //image data size in bytes. (=image->height*image->widthStep). In case of interleaved data

char *imageData;            //영상의 픽셀 데이터를 참조하기 위해 사용하는 멤버 변수. 배열의 시작 주소를 저장함.

                                    //openCV에서는 영상의 픽셀 데이터를 2차원 동적 배열이 아닌 1차원 동적 배열의 형태로 관리함.

int widthStep;                 //영상의 한 행(row)을 표현하기 위해 필요한 바이트의 수를 저장함.

                                    //영상의 픽셀 데이터를 직접 참조할 때 중요하게 사용됨.

int BorderMode[4];         //border completion mode, ignored by OpenCV

int BorderConst[4];         //ditto

char *imageDataOrigin;    //pointer to a very origin of image data (not necessarily aligned).

                                     //It is needed for correct image deallocation.

} IplImage;