中易网

怎么用opencv实现在mfc中图像打开和保存?

答案:1  悬赏:20  
解决时间 2021-02-12 01:05
怎么用opencv实现在mfc中图像打开和保存?
最佳答案
// OpenCVMFCView.h : interface of the COpenCVMFCView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_OPENCVMFCVIEW_H__D4F24E70_1F6C_401E_8DA2_77007D17F49F__INCLUDED_)
#define AFX_OPENCVMFCVIEW_H__D4F24E70_1F6C_401E_8DA2_77007D17F49F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class COpenCVMFCView : public CView
{
protected: // create from serialization only
COpenCVMFCView();
DECLARE_DYNCREATE(COpenCVMFCView)

// Attributes
public:
COpenCVMFCDoc* GetDocument();

// Operations
public:
CImage view_img;//CImage结构体 在view类与其他类之间图像调用
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(COpenCVMFCView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL

// Implementation
public:
virtual ~COpenCVMFCView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
//{{AFX_MSG(COpenCVMFCView)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG // debug version in OpenCVMFCView.cpp
inline COpenCVMFCDoc* COpenCVMFCView::GetDocument()
{ return (COpenCVMFCDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_OPENCVMFCVIEW_H__D4F24E70_1F6C_401E_8DA2_77007D17F49F__INCLUDED_)

// OpenCVMFCView.cpp : implementation of the COpenCVMFCView class
//

#include "stdafx.h"
#include "OpenCVMFC.h"

#include "OpenCVMFCDoc.h"
#include "OpenCVMFCView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// COpenCVMFCView

IMPLEMENT_DYNCREATE(COpenCVMFCView, CView)

BEGIN_MESSAGE_MAP(COpenCVMFCView, CView)
//{{AFX_MSG_MAP(COpenCVMFCView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COpenCVMFCView construction/destruction

COpenCVMFCView::COpenCVMFCView()
{
// TODO: add construction code here

}

COpenCVMFCView::~COpenCVMFCView()
{
}

BOOL COpenCVMFCView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// COpenCVMFCView drawing

void COpenCVMFCView::OnDraw(CDC* pDC)
{
//COpenCVMFCDoc* pDoc = GetDocument();
//ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//在视图类显示
CRect dc_r;
GetClientRect(&dc_r);
view_img.DrawToHDC(pDC->GetSafeHdc(),dc_r);
}

/////////////////////////////////////////////////////////////////////////////
// COpenCVMFCView printing

BOOL COpenCVMFCView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}

void COpenCVMFCView::OnBeginPrinting(CDC* , CPrintInfo* )
{
// TODO: add extra initialization before printing
}

void COpenCVMFCView::OnEndPrinting(CDC* , CPrintInfo* )
{
// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// COpenCVMFCView diagnostics

#ifdef _DEBUG
void COpenCVMFCView::AssertValid() const
{
CView::AssertValid();
}

void COpenCVMFCView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}

COpenCVMFCDoc* COpenCVMFCView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COpenCVMFCDoc)));
return (COpenCVMFCDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// COpenCVMFCView message handlers
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
桑乐金远红外养生桑拿房体验展示中心我想知道
恋舞ol的新手教程是谁带领的
‘怎么说也是玉米一场’用山东济宁话怎么说
征途风雷翼升级问题
东升四队地址在什么地方,想过去办事
太平洋保险十岁小孩买东方红财富升一年一万2
如何识别摩托车发动机是否原装机
青春咖啡厅这个地址在什么地方,我要处理点事
csol怎么提高画面清晰度?
潘通色卡号314C对应颜色是什么?
金牛座女人床上好骚
智慧树托管中心地址有知道的么?有点事想过去
问个棘手的问题,关于干部转工人后,退休金少
《重生之带着空间守护幸福》txt全集下载
同庆五金百货青翠园分店怎么去啊,有知道地址
推荐资讯
每朵油菜花都有1枚雌蕊对吗?
物理功与能转换的问题。物体受到一个与重力大
泰安市公安局交警支队高新区交通管理服务站怎
请问乘游船看金门的码头在哪?
零长发射架英文怎么写
如何完善存货计量的不足
女孩说我长得还挺不赖的什么意思
关于踏实学习的歇后语
如何快速去除残留在衣服上的洗洁精?要快速的
贾平凹的废城写的是哪个城市?
开借条记什么会计分录
中房地产中介公司地址在什么地方,想过去办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?