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

本文档介绍了如何在MFC多文档应用程序中使用OpenCV进行图像的打开和保存操作。主要涉及C**Doc和C**View类的修改,详细步骤包括在Doc.cpp和View.cpp文件中的具体实现。
摘要由CSDN通过智能技术生成

需要在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=0;
	return(true);
}

BOOL CCVMFCDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
	if(!CDocument::OnOpenDocument(lpszPathName))	return false;
	Load(&pImg,lpszPathName);
	if(pImg) return true;
	return 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);
	}
}


评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值