관리 메뉴

마틴블로그닷넷

OpenCV 강좌 02. 다이얼로그(Static Control)에 이미지 출력하기 본문

[ 프로그래밍 ]/강좌

OpenCV 강좌 02. 다이얼로그(Static Control)에 이미지 출력하기

K. Martin 2009.06.25 21:28

1. Static Control(Picture Control) 생성


2. 멤버변수 추가

3. 헤더파일 수정(이미지 변수 선언. 이때 화면에 뿌려줄 이미지를 전역으로 설정 한다.)

4. 열기 버튼 내용 수정 및 윈도우 종료시 이미지 Release

5. Static Control에 이미지 출력
- IplImage형의 이미지를 CvvImage형으로 복사한 뒤 그 핸들을 이용하여 Static Control에 이미지 출력

6. 테스트 결과




53 Comments
  • 이전 댓글 더보기
  • 드레이크 2010.05.07 10:27 신고 어제 마틴님의 강좌를 찾고 얼마나 기뻤는지 모릅니다^^
    그래서 오늘부터 하나씩 따라하고 있는데요 버튼을 눌렀을때 이미지가 잠깐 보이고 사라지는 이유눈 왜일까요??
    분명 똑같이 만들었는데요 ㅜㅜ
  • Favicon of http://martinblog.net K. Martin 2010.05.10 08:06 신고 기쁘셨다니 저도 뿌듯합니다. 고맙습니다.

    Invalidate(FALSE); 확인 하세요.
    그것이 아닌 다른 이유는 저도 잘 모르겠네요 ^^
  • 롤리랑 2010.05.11 02:01 신고 안녕하세요~
    저는 mfc를 처음 하는 학생이에요~^^
    알려주신데로 따라햇는데~
    컴파일을하면 serial.exe에 문제가 있어서 프로그램을 종료해야 합니다
    라는 구문이 뜨면서 꺼져요 ㅠㅠ
    왜그런지 꼭좀 알려주세요~
  • Favicon of http://martinblog.net K. Martin 2010.05.11 23:49 신고 serial.exe가 뭘까요?
  • 송지혜 2010.05.23 20:55 신고 저 고대로 다 따라했는데,, 오류가나네요 ㅜㅜㅜ
    0x5e0a28ex(highgui200.dll)에 처리되지 않은 예외가 있습니다. 엑세스 위반이 발생했습니다.
    라고 뜨는데,,, 도와주세요ㅠ ㅜ아무리해도 해결되지 않습니다..
  • 송지혜 2010.05.23 21:00 신고 앗,, 이상하게 이런오류가 한 30번떴는데
    익스플로어 오류도 같이떳거든요, 그런데 갑자기 되네요__---모지..ㅋㅋㅋㅋ아무튼 너무기쁩니다 세상을날아갈거같아요 앞으로남은 단계도 잘되길..감사해요 마틴님!ㅋㅋ
  • 김종선 2010.05.26 01:39 신고 m_pImage 를 초기화해주지 않아서 발생한 에러 입니다.

    OnInitDialog()에
    m_pImage = NULL; 요거 한줄 추가해주세요.
  • Favicon of http://martinblog.net K. Martin 2010.05.27 18:17 신고 답글 고맙습니다.
  • uni 2011.10.31 23:54 신고 m_pImage에서 문제가 발생해서 계속 해맸는데
    덕분에 해결 됬네요.. 감사합니다..ㅠ
    아 마틴님~ 오늘부터 마틴님 강좌보고 열심히 하고 있는 학생입니다~ 좋은 강좌 감사드려요~
  • 이지미 2010.06.08 20:55 신고 컴파일을 하니깐 TODO <파일설명>에 문제가 생겨서 되지 않는다는 창이 뜨는데 이건 왜 그런거죠?

    제가 잘못 따라한것 같아서 다시 해봤는데도 이런 오류창이 뜨네요;;ㅜ;;;;;
  • Favicon of http://blog.naver.com/gorila222 송주섭 2010.11.09 04:25 신고 너무 답답해서 글올립니다..
    mfc가 완전 생초보라 ㅜ,ㅜ
    비주얼6.0을 쓰고 있는데
    따라하다가 몇일째 에러 못잡고 있습니다 ㅜㅜ
    realDlg.cpp(172) : error C2065: 'm_pImage' : undeclared identifier
    realDlg.cpp(181) : error C2065: 'm_cImage' : undeclared identifier
    realDlg.cpp(181) : error C2228: left of '.CopyOf' must have class/struct/union type
    realDlg.cpp(182) : error C2228: left of '.DrawToHDC' must have class/struct/union type
    realDlg.cpp(201) : error C2440: '=' : cannot convert from 'struct _IplImage *' to 'int'
    아랫분이 OnInitDialog()에
    m_pImage = NULL; 요거 한줄 추가해도 안되고 ㅜ,ㅜ 도와주십쇼
  • Favicon of http://martinblog.net K. Martin 2010.11.09 08:34 신고 헤더파일에 각종 변수들이 선언되어 있지 않아서 발생한 에러입니다.
  • Favicon of http://blog.naver.com/gorila222 송주섭 2010.11.10 03:29 신고 방금 해결했습니다
    윗분이 말씀하신 초기화 부분이랑
    헤더부분 수정해서 맨땅에 해딩식으로 3일밤샛네요ㅎㅎ
    감사합니다
  • Sirano 2011.02.10 14:31 신고 여기서 많은 정보를 얻어 가고 있습니다. 이 강좌를 보고 따라해보고 있는데
    웹캠이 따로 없는 상태에서 내장된 노트북 캠으로 영상을 퍼올려고 하는데
    에러하나 없이 실행은 되지만 검은색 화면밖에 뜨질 않네요,
    이게 내장된 노트북 캠이라서 그런가요? 아님 다른 문제인가요 ?
  • Favicon of http://martinblog.net K. Martin 2011.02.11 09:49 신고 노트북 내장 캠이라고 해서 안될 이유는 없습니다.
    캠의 설정 문제가 아닐까 조심스럽게 추측해 봅니다.
  • Favicon of http://blog.naver.com/ytkim4558 나그네켄신 2011.03.05 11:22 신고 opencv2.2에서는 CvvImage를 빼버렸네요.. 멀로 대체해야하징.. ㅠㅠ
  • Favicon of http://martinblog.net K. Martin 2011.03.11 16:27 신고 아, 그부분은 아직 확인하지 못했습니다.
    다른 방법이 있으시면 저에게도 꼭 알려주시면 고맙겠습니다.
  • 박성훈 2011.04.02 21:20 신고 1개의 경고가 떴는데요.
    파일:cvcompat.h 이고
    현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 해당 파일을 유니코드 형식으로 저장하십시오.

    무슨문제인가요?
  • Favicon of http://martinblog.net K. Martin 2011.04.05 09:06 신고 글세요 저도 가끔 그런 오류가 나더군요.
    해당 경고 부분의 공백을 지웠다 늘렸다 하면서 해결했었던 기억이 있습니다만...
  • mfc 공부하는 사람 2011.08.22 18:20 신고 잘 봤습니다.
    그럼 저기 픽쳐컨트롤에 그냥 사각형이나 삼각형같은 도형을 그려넣을땐 어떻게 하나요?
  • Favicon of http://martinblog.net K. Martin 2011.08.25 18:12 신고 저는 이미지 자체에 그려넣었습니다.
  • mfc 초보 2011.09.20 20:22 신고 OpenCV2.2 버전 이후 CvvImage 함수를 더 이상 지원하지 않는 다고 들었는데요.임의로 CvvImage를 추가하는 방법은 없는가요? 아니면 다른 대체 함수는 없나요?
  • Favicon of http://martinblog.net K. Martin 2011.09.22 18:15 신고 아.. 제가 2.0버전 이후로 QT로 전향해서 그 뒤에 어떤 문제가 있는지 잘 모르겠네요. 답을 못드려서 유감입니다.
  • 초보 2011.09.26 20:24 신고 제가 정말 초보 인데 궁금한게 있습니다. 마틴님 소스 열어서 하면 되는데 제가 처음부터 일일이 하면 안될까요? 위에부분에서 1번은 똑같이 하고 2번을 하려고 하는데 범주랑 컨트롤 형식 이 고르는게 없더라구요.. 어떻게 된일인지요.... 꼭 답변 부탁드립니다. 지식이 너무 낮아 죄송합니다. ㅠㅠ
  • 달걀한개 2011.10.04 16:46 신고 사용툴 : VS2008
    설정 : 1장에서 보여준 화면 그대로 설정 했음.
    문제점 : 오류, 경고 없음.
    프로그램 실행후 버튼을 클릭 했을시 사진불러 오는 작업이 시행이 안됨.
    이후, 디버깅을 통하여 cvLoadImage 함수 반환값이 없다는 것을 알게되었음.
    본인이 작성한 코드를 예제 코드에 덧씌워 보았지만 실행은 잘되는 상태.

    뭐가 문제일까요?
  • 조알 2012.01.04 09:21 신고 안녕하세요 마틴님, MFC 로 윈도우 만들고 하는게 거의 해본 적이 없어서 문제가 좀 있나 봅니다..;;;그래서 질문하나 하겠습니다!
    강좌 1에서 올려주신 소스는 잘 돌아갔습니다, 그리고 이제 강좌 2로 또 넘어가서 단계별로 따라해보려고 하는 중인데요, 여기서 문제 발생합니다..
    강좌2에 따라서 소스 수정해서 돌렸는데,
    TODO: <파일 설명> 에 문제가 있어서 프로그램을 종료해야 합니다.
    라는 메세지와 함께 오류가 뜹니다!
    혹시나 해서 올려주신 강좌2 소스를 보고 비교해서 헤더랑 cpp 파일에 제대로 수정했는데, 안되네요?
    그런데!!!!!! 마틴님께서 올려주신 강좌2 소스를 돌리면 문제없이 실행됩니다...

    그렇다면.. 소스코드 수정해야되는 것 말고도 강좌1에서 강좌2로 넘어갈때 뭐 또 해야되는 작업이 있는건가요?
    (1번 static control, 2번 멤버변수 추가 ===> 이 부분을 어떻게 해야되는 건지 몰라서 안하긴 했는데요...;;;)

    너무 초보라 죄송하고, 혹시 원인을 아신다면 조언 부탁드릴게요!
  • Favicon of http://blog.naver.com/geworm 김주영 2012.01.18 16:01 신고 안녕하세요 강좌 잘 보고 있습니다.
    open cv 랑 MFC를 거의 다뤄본적이 없어서 책과 강좌를 보면서 공부하고있는데요 다름이 아니라 궁금한점이 있어서 댓글 올립니다.
    위에 강좌대로 차례로 수행한뒤 실행을 해보았으나 동작이안되서
    마틴님께서 올려주신 소스를 비교하면서 찾아보니까 틀린데가 두군대 정도가 있었는데요 바로 이 곳입니다.

    COpenCVtest20120118Dlg::COpenCVtest20120118Dlg(CWnd* pParent /*=NULL*/)
    : CDialog(COpenCVtest20120118Dlg::IDD, pParent)
    , m_pImage(NULL) //<---- 첫번째 틀린부분
    {
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }

    void COpenCVtest20120118Dlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_ST_DISPLAY, m_stDisplay); //두번째 틀린부분

    }

    제가 MFC에 너무 무지해서 그러는데 위에 두곳의 틀린부분에대해 설명좀 해주시면 감사하겠습니다. 그럼수고하세요
  • Favicon of http://blog.naver.com/geworm 김주영 2012.01.18 16:15 신고 창을 다시생성해보니
    DDX_Control(pDX, IDC_ST_DISPLAY2, m_stDisplay2);
    이부분이 컨트롤 변수인데.... 자동으로 추가되었내요;;;

    음....
    , m_pImage(NULL) // 이부분이 위에 댓글에 있던 생성자 초기화부분인가??
    아 잘모르겟내 ㅠㅠ

  • 티아루나 2012.03.06 15:21 신고 DestroyWindow()는 어떻게 만드는건가요?
  • 나그네 2013.07.03 15:57 신고 CvvImage 사용방법 밑에 블러그에 있네요

    blog.naver.com/PostView.nhn?blogId=maedk01&logNo=60186886466
  • 영상처리입문학생 2013.07.08 14:51 신고 실행하는데 에러는 안뜨구요..

    근데 확인버튼클릭하면 창이 그냥 꺼지네요..

    무슨문제일까요?
  • Favicon of http://www.landrovaltimes.info ニューバランス 2013.10.14 00:03 신고 {Every thing you should do|Checklist of beneficial approaches|Perform the following} to find out about watch before you are abandoned.
  • MFC초보생 2015.07.06 14:23 신고 1회부터 잘보며 배우고있습니다.
    이번에도 똑같이 따라했는데.. 에러 줄은 따로 표시가 안돼는데
    이렇게 에러뜨면서 실행이 안되네요 ㅠ
    1>StartOpenCVwithMFC.obj : error LNK2019: "public: virtual __thiscall CvvImage::~CvvImage(void)" (??1CvvImage@@UAE@XZ) 외부 기호(참조 위치: "public: virtual __thiscall CStartOpenCVwithMFCDlg::~CStartOpenCVwithMFCDlg(void)" (??1CStartOpenCVwithMFCDlg@@UAE@XZ) 함수)에서 확인하지 못했습니다.
    1>StartOpenCVwithMFCDlg.obj : error LNK2001: "public: virtual __thiscall CvvImage::~CvvImage(void)" (??1CvvImage@@UAE@XZ) 외부 기호를 확인할 수 없습니다.
    1>StartOpenCVwithMFCDlg.obj : error LNK2001: "public: void __thiscall CStartOpenCVwithMFCDlg::OnStnClickedStDisplay(void)" (?OnStnClickedStDisplay@CStartOpenCVwithMFCDlg@@QAEXXZ) 외부 기호를 확인할 수 없습니다.
    1>StartOpenCVwithMFCDlg.obj : error LNK2019: "public: __thiscall CvvImage::CvvImage(void)" (??0CvvImage@@QAE@XZ) 외부 기호(참조 위치: "public: __thiscall CStartOpenCVwithMFCDlg::CStartOpenCVwithMFCDlg(class CWnd *)" (??0CStartOpenCVwithMFCDlg@@QAE@PAVCWnd@@@Z) 함수)에서 확인하지 못했습니다.
    1>C:\opencv\Chap1\StartOpenCVwithMFC\Debug\StartOpenCVwithMFC.exe : fatal error LNK1120: 3개의 확인할 수 없는 외부 참조입니다.

    이렇게 오류가 뜨는데.. 외부에 관한 에러는 왜 뜨는건가요?ㅠ
댓글쓰기 폼