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

  • 모덜리스(Modeless) Dialog로 변환하기

    이전 시간에 만들었던 모달(Modal) Dialog를 모덜리스(Modeless) Dialog로 변환해 보겠습니다. Modal Dialog는 Dialog가 실행되는 동안 다른 작업을 하지 못하고, Modeless Dialog는 프로그램 실행 흐름을 방해하지 않는다는 것 정도는 알고 계시죠? 자 그럼 이전 시간 “MFC – Cam 영상 출력해보기(http://deios.kr/420)”에 만들었던 View Dialog를 멋지게 바꿔 보겠습니다.   OnCamView함수를 다음과 같이 수정합니다. void CMFC_OpenCVApp::OnCamView() {       // TODO: 여기에 명령…

  • 공간 영역 필터링 – Dialog Box 기반 구현

    이번 시간에는 Dialog Box기반으로 OpenCV를 이용하는 방법에 대해서 알아보겠습니다.   공간 필터링(Spatial Filtering)이란 영상에 있는 공간 주파수 대역을 제거하거나 강조하는 필터 처리입니다. 사용되는 필터의 계수에 따라 특정 주파수를 제거하거나 강조하게 되며, 필터 마스크(Filter Mask)또는 회선 마스크의 가중치 선택이 공간 필터의 행동을 결정하게 됩니다. 영상처리에 사용되는 회선 마스크는 홀수 차원의 정방형 마스크가 사용되게 됩니다.   필터는…

  • AcroEdit에서 C/C++ Compile 하기…

    이제 슬슬 공부나 해볼까하고 마음먹던중;;; 그냥 갑자기 C를 하고 싶어졌습니다… 이제까지 하려고 하려고 해도… 귀찮아서 접어두었던 C 책 한권을 꺼내서;;; 첫장을 펼처보니 “Turbo C++”를 설치하라는 겁니다… 전 착한 학생이기 때문에(~ㅋ) 하라는데로 설치했죠;;; 설치하고 보니 이게 왼걸;;; 구석기시대에서나 볼수있는 인터페이스;;; ㄷㄷ;;; 그래서 부대안에 있을때 사용했던 AcroEdit과 연결하기로 마음먹었습니다… 열심히 컴파일러를 찾아 해매였는데…;;; 이게 왠걸;;; 도처히 못찾겠습니다.;;;…

  • |

    TCP 폭주(혼잡)제어

    TCP의 폭주제어에서 예약방식을 못 쓰고 피드백 기반 방식을 사용하여야 하는 이유를 설명하시오. 예약 방식의 경우 데이터 전송 중 경로상의 라우터에서 폭주 혹은 에러가 발생했을 경우 송신자는 계속 데이터를 보내게 되어 혼잡이 가중된다. 이를 해결하기 위해 피드백 방식을 사용한다.송신자는 약간의 데이터만 전송하여 도착 여부를 확인 후 점점 전송량을 늘려간다. 이처럼 네트워크의 상태에 따라 송신측에서 전송량을 조절하여야 한다….

3 Comments

답글 남기기

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