그때그때 정리하니까 시간이 너무 걸린다.
빨리빨리 해서 한번 다 하고 적어나가자
'중도연재종료 > CORTEX M3' 카테고리의 다른 글
Clock Control (0) | 2013.06.23 |
---|---|
Get Character (0) | 2013.06.14 |
UART_ Hello_Wolrd 찍기_2 (0) | 2013.06.08 |
UART_ Hello World 찍기_1 (0) | 2013.06.08 |
GPIO_Init (0) | 2013.05.25 |
그때그때 정리하니까 시간이 너무 걸린다.
빨리빨리 해서 한번 다 하고 적어나가자
Clock Control (0) | 2013.06.23 |
---|---|
Get Character (0) | 2013.06.14 |
UART_ Hello_Wolrd 찍기_2 (0) | 2013.06.08 |
UART_ Hello World 찍기_1 (0) | 2013.06.08 |
GPIO_Init (0) | 2013.05.25 |
CvMat* cvCreateMatHeader(int rows, int cols,int type);
행, 열과 행렬요소의 자료형을 인수로 주면 행렬의 헤더를 생성하여 포인터를 반환
void cvCreateDate(CvArr* arr);
행렬 또는 영상 포인터인 arr의 헤더에 맞게 행렬 또는 영상 메모리 할당.
void cvReleaseData(CvArr* arr);
포인터인 arr에 할당된 메모리만을 해제한다.
CvMat* cvInitMatHeader(CvMat* mat, int rows, int cols, int type, void* date=NULL, int step=CV_AUTOSTEP);
인수 rows, cols, type, data, step을 이용하여 CvMat포인터 인수인 mat을 초기화 한다.
CvMat cvMat(int rows, int cols, int type, void* date=NULL);
CvMat 자료형의 인스턴스를 생성하여 반환.
cvSetReal*D
1채널 행렬.영상에서만 사용 가능
idx에 의해 지정된 요소 값을 double형 인수인 value값으로 변경한다.
cvSet*D
1,2,3채널의 행렬 및 영상에서 사용
idx에 의해 지정된 요소 값을 CvScalar형 인수인 value값으로 변경
cvGetReal*D
1채널에서만 사용 가능
idx등에 의해 지정된 요소 값을 double형으로 반환
cvGet*D
1,2,3채널에서 사용 가능
CvScalar형으로 반환
cvmGet, cvmSet
1채널인 실수 행렬에서만 사용 가능
cvmGet : row, col위치의 요소 값을 double형으로 반환
cvmSet : row,col위치의 요소 값을 double형 인수인 value값으로 변경
cvPtr*D
주어진 행렬 또는 영상에서 첨자로 지정된 요소의 포인터를 반환
cvSet, cvSetZero
arr의 모든 요소 또는 화소 값을 value, 0로 변경
CV_MAT_ELEM
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)로 모든 윈도우 파괴 가능