IplImage* ImageOpen()
{
IplImage* image = 0;
image = cvLoadImage("t9t9.jpg", 1);
cvNamedWindow( "T9-viewer", 1);
cvShowImage( "T9-viewer", image );
cvWaitKey(0);
cvDestroyWindow( "T9-viewer" );
return image;
}
1.IplImage
typedef struct _IplImage
{
int nSize;
int ID;
int nChannels; //채널의 개수. 1~4
int alphaChannel;
int depth; //화소의 비트표현 depth정보를 갖음(8비트 unsigned~64비트 배정도 실수)
char colorModel[4];
char channelSeq[4];
int dataOrder; //채널 자료의 저장 순서{0:인터리브 컬러채널, 1:분리 컬러채널}
int origin; //영상의 원점{0:왼쪽 상단, 1:왼쪽 하단(비트맵 처럼). 기본 0}
int align;
int width; //가로방향 화소수
int height;
struct _IplROI *roi; //Region Of Interest(ROI) 영상에서 관심영역.coi, xOffset,yOffset,width,height
struct _IplImage *maskROI;
void *imageld;
struct _IplTileInfo *tileInfo;
int imageSize;
char *imageData;
int widthStep; //한 행의 바이트 개수
int BorderMode[4];
int BorderConst[4];
char *imageDataOrigin;
}
IplImage* cvLoadImage(const char* filename, int iscolor=CV_LOAD_IMAGE_COLOR);
:iscolor-> CV_LOAD_IMAGE_COLOR : 3채널 컬러 영상, CV_LOAD_IMAGE_GRAYSCALE : 1채널 그레이 스케일, CV_LOAD_IMAGE_UNCHANGED : 원본 영상 그대로
int cvSaveImage(const char* filename, const CvArr* image);
영상을 파일에 저장. 포맷은 파일 확장자에 의해 정해지며, 8비트 단일 채널과, 3채널 컬러영상으로 저장 가능
int cvWaitKey(int delay=0);
delay/1000초 만큼 지연 대기. delay=0이면 키를 누를 때 까지 무한히 대기
int cvNamedWindow(const char* name, int flags);
윈도우 생성. name은 식별 ID로 사용.
flag = CV_WINDOW_AUTOSIZE : 영상의 크기에 맞게 윈도우 크기 자동 조절
void cvShowImage(const char* name, const CvArr* image);
name 이름을 갖는 윈도우에 영상 image를 보여준다. 영상 크기에 맞게 윈도우의 크기가 스케일 된다.
void cvDestroyWindow(const char* name);
윈도우 파괴. cvDestroyAllWindows(void)로 모든 윈도우 파괴 가능