MFC中快速应用OpenCV

本文介绍了如何在Windows 10环境下,使用Visual Studio 2008和OpenCV 2.3.1构建一个MFC应用程序。步骤包括创建MFC静态库项目,配置额外的依赖库,以及解决OpenCV版本差异导致的类型问题。通过添加CvvImage类型并实现OnOpenDocument和OnSaveDocument函数,成功实现了在MFC中应用OpenCV的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写链接内容

以上是参考链接

系统:win10
配置:VS2008+OpenCV 2.3.1

  • File|New|Project|MFC Application|Name(MFCtest)
  • MFC Application Wizard
    Application type :Single document
    Use of MFC: static library
    Use Unicode libraries:No
    ActiveX controls:No
    -Project|porperties|Linker|Input
    Configuration:Active(Debug) and Release
    Additional Dependencies:
    opencv_calib3d231d.lib
    opencv_contrib231d.lib
    opencv_core231d.lib
    opencv_features2d231d.lib
    opencv_flann231d.lib
    opencv_gpu231d.lib
    opencv_highgui231d.lib
    opencv_imgproc231d.lib
    opencv_legacy231d.lib
    opencv_ml231d.lib
    opencv_objdetect231d.lib
    opencv_ts231d.lib
    opencv_video231d.lib

  • Solution|MFCtestDoc.h|添加 include”CvvImage.h”|public in class CMFCtestDoc 添加 CvvImage m_image
    在链接中,使用的是OpenCV2.0.0 而我们使用的是OpenCV 2.3.1 这个版本中取消了CImage这个类型,所以这里我们可以通过添加原版本的CvvImage类型来实现,添加两个文件CvvImage.h 和CvvImage.c 到工程中。

  • Class View|CMFCtestDoc|Add Function
    添加两个函数
    OnOpenDocument 和 OnSaveDocument:
    Return type:BOOL(bool编译可能会出错)
    Function name:OnOpenDocument
    Parameter type:LPCTSTR
    Parameter name: lpszPathName
    Choose Virtual
    Return type:BOOL(bool编译可能会出错)
    Function name:OnSaveDocument
    Parameter type:LPCTSTR
    Parameter name: lpszPathName
    Choose Virtual

BOOL CMFCtestDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
    if(!CDocument::OnOpenDocument(lpszPathName))  
    return false;  
    m_image.Load(lpszPathName);  
    return true; 
}
BOOL CMFCtestDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
    m_image.Save(lpszPathName);  
    return true; 
}
  • CMFCtestView.c|OnDraw
void CMFCtestView::OnDraw(CDC* pDC)
{
CMFCtestDoc* pDoc = GetDocument();  
ASSERT_VALID(pDoc);  
    if (!pDoc)  
       return;  
CvvImage & img = pDoc ->m_image;
CRect r;  
GetClientRect (&r);  
img.DrawToHDC(pDC->GetSafeHdc() ,r); 
}

运行可以实现MFC中快速应用OpenCV

下面是CvvImage.c 和 CvvImage.h 的内容
CvvImage.h

#pragma once  

#ifndef CVVIMAGE_CLASS_DEF  
#define CVVIMAGE_CLASS_DEF  

#include "opencv2/highgui/highgui.hpp"  
#include "opencv2/core/core.hpp"  
#include "opencv2/imgproc/imgproc.hpp"  
#include "opencv2/imgproc/imgproc_c.h"  


class  CvvImage  
{  
public:  
 CvvImage();  
 virtual ~CvvImage();  


 virtual bool  Create( int width, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值