MFC多文档中opencv处理图像打开 保存

本文介绍如何在MFC多文档应用程序中使用OpenCV处理图像,包括图像的打开和保存操作。主要涉及C**Doc和C**View类的修改,详细步骤和完整代码在文中给出。
               

需要在C**Doc和C**View中进行相应修改


图像打开:

Doc.cpp中:

BOOL CCVMFCDoc::Load(IplImage** pp, LPCTSTR csFilename){ IplImage* pImg=NULL; pImg = cvLoadImage(csFilename,-1);      //  读图像文件(DSCV) if (!pImg) return(false); cvFlip(pImg);                           //  与 DIB 像素结构一致 if (*pp) {  cvReleaseImage(pp); } (*pp)=pImg; m_Display=0return(true);}

BOOL CCVMFCDoc::OnOpenDocument(LPCTSTR lpszPathName){ if(!CDocument::OnOpenDocument(lpszPathName)) return false; Load(&pImg,lpszPathName); if(pImg) return truereturn false;}

图像保存:

1.Doc.cpp中

BOOL CCVMFCDoc::Save(LPCTSTR csFilename, IplImage* pImg){ int   bl; cvFlip(pImg);                           //  恢复原 OpenCV 位图结构 bl=cvSaveImage(csFilename,pImg);        //  图像存盘 return(bl);}

2.View.cpp中

void CCVMFCView::OnFileSaveAs()//图像保存CFileDialog dlg(false,"*.bmp","Test.bmp",OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,"保存为(*.bmp)|*.bmp|所有文件(*.*)|*.*||")CString strPath("")if(dlg.DoModal()==IDOK) {  cvFlip(workImg);  strPath=dlg.GetPathName();  cvSaveImage(strPath,workImg);  cvFlip(workImg); }}



整体代码如下:

// CVMFCDoc.h : CCVMFCDoc 类的接口//@Author:ZrqSophia//@2012-3-2#pragma onceclass CCVMFCDoc : public CDocument{
   
   protected: // 仅从序列化创建 CCVMFCDoc(); DECLARE_DYNCREATE(CCVMFCDoc)// 属性public:// 操作public:// 重写publicvirtual BOOL OnNewDocument()virtual void Serialize(CArchive& ar);// 实现publicvirtual ~CCVMFCDoc();#ifdef _DEBUG virtual void AssertValid() constvirtual void D
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值