zoukankan      html  css  js  c++  java
  • VS2008编写MFC程序--使用opencv2.4()

    开始记录VS2008环境下学习OPENCV2.4

    头文件:

    1 #pragma once
    2 #include "CvvImage.h"
    3 #include "opencv/cv.h"
    4 #include "opencv/highgui.h"

    定义全局变量:

    在*dlg.cpp

    1 CvCapture* capture;
    2 CRect rect;
    3 CDC *pDC;
    4 HDC hDC;
    5 CWnd *pwnd;

    CPP文件:

     1 void Cvedio_mfcDlg::OnBnClickedButton1()
     2 {
     3     // TODO: Add your control notification handler code here
     4     if(!capture)
     5     {
     6         capture = cvCaptureFromCAM(0);
     7         //AfxMessageBox("OK");
     8     }
     9 
    10     if (!capture)
    11     {
    12         AfxMessageBox("无法打开摄像头");
    13         return;
    14     }
    15 
    16     // 测试
    17     IplImage* m_Frame;
    18     m_Frame=cvQueryFrame(capture);
    19     CvvImage m_CvvImage;
    20     m_CvvImage.CopyOf(m_Frame,1);    
    21     if (true)
    22     {
    23         m_CvvImage.DrawToHDC(hDC, &rect);
    24         //cvWaitKey(10);
    25     }
    26 
    27     // 设置计时器,每10ms触发一次事件
    28     SetTimer(1,10,NULL);
    29 }
    30 
    31 void Cvedio_mfcDlg::OnTimer(UINT_PTR nIDEvent)
    32 {
    33     // TODO: Add your message handler code here and/or call default
    34     /************************************************************************/
    35     /* 显示摄像头                                                           */
    36     /************************************************************************/
    37     IplImage* m_Frame;
    38     m_Frame=cvQueryFrame(capture);
    39     CvvImage m_CvvImage;
    40     m_CvvImage.CopyOf(m_Frame,1);    
    41     if (true)
    42     {
    43         m_CvvImage.DrawToHDC(hDC, &rect);
    44         //cvWaitKey(10);
    45     }
    46 
    47 
    48     CDialog::OnTimer(nIDEvent);
    49 }
    50 
    51 void Cvedio_mfcDlg::OnBnClickedButton2()
    52 {
    53     // TODO: Add your control notification handler code here
    54     cvReleaseCapture(&capture);
    55     CDC MemDC; 
    56     CBitmap m_Bitmap1;
    57     m_Bitmap1.LoadBitmap(IDB_BITMAP1); 
    58     MemDC.CreateCompatibleDC(NULL);
    59     MemDC.SelectObject(&m_Bitmap1);
    60     pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,0,0,48,48,SRCCOPY); 
    61 }

    托管在github上的源代码:

    https://github.com/yuliyang-bupt/simple_camera_mfc

    效果:

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    问题 K: 找点
    问题 B: 喷水装置(二)(在c++上运行有错误,提交AC了)
    问题 A: 喷水装置(一)
    问题 Q: 最大的数
    问题 O: 寻找最大数(三)
    96.n-1位数
    问题 K: A/B Problem
    问题 D: 某种序列
    被限制的加法
    1031苹果分级
  • 原文地址:https://www.cnblogs.com/yuliyang/p/3324693.html
Copyright © 2011-2022 走看看