需要在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);
}
}