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

    效果:

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    [css]继承关系(一)
    Trie树-提高海量数据的模糊查询性能
    [C]struct结构化数据的一些要点
    [C]表达式结合规律和运算符优先级
    [C]副作用和序列点
    [C]链接和生存周期
    [PHP]关于连接MySQL的问题
    IT网址大全
    VUE 生命周期
    Vue 组件间传值
  • 原文地址:https://www.cnblogs.com/yuliyang/p/3324693.html
Copyright © 2011-2022 走看看