MFC용 이미지 클래스, highgui에 들어있음.

DC를 이용해서 그릴 때 주로 사용.

 

CvvImage.Load(파일명);

// 쓸데없이 많이 쓰면 속도를 잡아먹는 Copyof()

CvvImage.CopyOf(IplImage, bit)

CvvImage.Show(pDC->GetSafeHdc(), 0, 0, width, height);

CvvImage.Destroy();

CvvImage.Save(lpszPathName); // 파일로 저장, 간편하다.

-------------------------------------------------------------------------

윈도우의 DC를 얻어서 IplImage 구조체 이미지를 자기가 원하는 영역에 출력하는 방법.

 1. MFC

 OnPaint() 에서

CPaintDC dc(this)로 받으면.

이 dc를 이용하여

 // 생성자에서 넣어주는 부분 ( 다이얼로그 베이스일 경우 Dlg, SDI일 경우 View)

cvvImage cvImage;

IplImage *test;

//OnPoint 코드에 넣어주는 부분

cvImage.CopyOf(test, 8); // IplImage 구조체 데이터를 CvvImage로 복사

cvImage.Show(dc, 0,0,320,240); // 0,0에서 320,240 크기로 그림

 

2. API

 WM_PAINT 또는 영상 출력하고자 하는 부분에서

 HDC hdc = (HDC)::GetDC(GetDlgItem(hDlg, IDD_STATIC));
// dc를 생성하는 부분에서 차이를 보임.

cvImage.CopyOf(test, 8);

cvImage.Show(hdc, 0, 0, 320, 240);

DeleteDC(hdc);

 --------------------------------------------------------------------------

 MFC에서는 dc를 CPaintDC를 이용하여 CDC class DC를 이용하여 dc(this) 현재 다이얼로그의 DC를 얻어오지만,

API의 경우 현재 다이얼로그를 알 수 있는 방법이 없으므로. GetDlgItem과 같은 핸들을 얻어 오는 방법을 이용합니다.

물론 모듈로드로 알아보는 방법도 있지만, 어려운 방법이라 설명하기 좀 까다로워서 뺐습니다.

API에서 핸들을 얻어와 핸들에 해당하는 GetDC로 hdc를 얻어 옵니다. 그리고 hdc에 그려주는 겁니다.

 

신고
Posted by 온라인브랜드디렉터 강정은

▲ TOP으로 이동