Cfile24.uf .187CDB4D4D1CB1402F65E0

OpenCV 파일 저장기능 구현

Visual Studio 2010에서 OpenCV MFC 프로젝트 만들기(http://deios.kr/400)”에 이어 이번에는 파일 저장기능을 구현해 보도록 하겠습니다.

 

파일 열기는 OnOpenDocument()함수를 재정의 했던거 기억하시죠? 마찬가지로 파일 저장은 OnSaveDocument()함수를 재정의 하면 됩니다.

 

이젠 그림만 봐도 아시겠죠?

Cfile24.uf .187CDB4D4D1CB1402F65E0

return CDocument::OnSaveDocument(lpszPathName);

부분을 다음과 같이 수정합니다.

USES_CONVERSION;

return m_CvvImage.Save(W2A(lpszPathName));

저번에도 말씀드렸지만 OpenCV 라이브러리가 char *형을 받기 때문에 W2A매크로를 사용해 줍니다.

이번에는 새 이름으로 저장하는 기능을 구현해 보겠습니다.

새 이름으로 저장하기는 메뉴에 있죠? 메뉴를 클릭했을 경우 동작할 함수를 만들기 위해서 이번에는 이벤트 부분을 수정해 줘야 합니다.

Cfile24.uf .1138AF504D1CB1411B09B4

 

다음과 같이 코딩하면 간단한 “새 이름으로 저장”기능이 구현됩니다.

void CMFC_OpenCVView::OnFileSaveAs()

{       // TODO: 여기에 명령 처리기 코드를 추가합니다.

        CMFC_OpenCVDoc* pDoc = GetDocument();

        ASSERT_VALID(pDoc);

 

        CFileDialog dlgFile(TRUE);

        CString fileName;

        const int c_cbBuffSize = (100 * (MAX_PATH + 1)) + 1;

        dlgFile.GetOFN().lpstrFile = fileName.GetBuffer(c_cbBuffSize);

        dlgFile.GetOFN().nMaxFile = c_cbBuffSize;

        int chk = dlgFile.DoModal();

        fileName.ReleaseBuffer();

        if(chk == IDOK) pDoc->OnSaveDocument(dlgFile.GetPathName());

}

cfile25.uf.1943DA554D1CB24A102126.pdfcfile10.uf.203E64554D1CB2571D493E.zip

Similar Posts

  • RGB 컬러 공간 분리 – 메뉴 기반 구현

    이번에는 본격적으로 OpenCV를 사용하여 영상처리를 해 보겠습니다. 그 첫 단계로 메뉴기반 정지영상 처리를 해 볼 것이며, cvSplit함수를 사용하여 RGB 컬러공간을 분리하는 예제를 구현해 보겠습니다.   먼저 OpenCV 2.1 C API Reference에서 cvSplit함수를 찾아보면 다음과 같습니다. cvSplit함수는 다중 채널(Multi-channel)배열을 여러 개의 단일 채널(Single-channel) 배열로 분할하거나, 배열에서 단일 채널을 추출 할 수 있음을 알 수 있습니다. 또한,…

  • [VS2010]LPCTSTR에서 char*로 형 변환하기

    OpenCV를 가지고 놀고 있는데 이놈이 char *밖에 지원하지 않아서 고생이 많습니다. 소스도 있겠다 확 다 뜯어고쳐버릴까… 라고 생각은 했지만 막상 하려니 엄두가 나질 않네요… 이게 다 실력이 부족해서라는… ㄷㄷㄷ MSDN도 찾아보고 이래저래 해봤지만 파일 경로등 특수문자 or 한글(유니코드)를 포함한 LPCTSTR은 char*형으로 쉽게 변환하지 못했습니다. \는 짤라먹기 일수고 한글은 듣도보도 못한 한자 or 일어로 변환되버렸죠 ㅠㅠ…

  • Face Detect

    이번 시간은 MFC와 OpenCV의 기본 사용법 마지막 내용이 되겠습니다. Cam 영상을 Dialog에 뿌려주는 부분에서 기본 사용법이 끝났어야 하지만… 조금 아쉬운 관계로 더 진행해 봤죠… 저도 아직 초보단계지만, MFC와 OpenCV의 기본 사용법은 뭐 없습니다… MFC야… GUI프로그래밍을 위해서 그냥 쓴 것이고… OpenCV는 영상을 받아오고, 출력하는 부분만 하면 기본은 끝난거 아닌가요?   지금까지 “오픈소스 OpenCV를 이용한 컴퓨터 비전…

3 Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다