在MFC中使用OpenCV
2010-11-02 13:18
447 查看
1. 在项目属性中添加与你使用的OpenCV版本对应的库
2. 在CXXApp::InitInstance()函数中
1)初始化为无窗口模式
2) 最大化主窗口
3. 使CXXView继承CScrollView而不是CView
4. 在CXXView::OnInitialUpdate()函数中设置滚动
5. 在CXXDoc类中添加成员变量
CvvImage m_Image;
6. 在CXXDoc类中添加函数
7. 在CXXView::OnDraw(CDC* pDC)函数中添加代码
highgui210d.lib cxcore210d.lib cv210d.lib cvaux210d.lib ml210d.lib
2. 在CXXApp::InitInstance()函数中
1)初始化为无窗口模式
// 分析标准外壳命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; //初始化时无窗口
2) 最大化主窗口
// 主窗口已初始化,因此显示它并对其进行更新 //pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->ShowWindow(SW_SHOWMAXIMIZED); //最大化窗口 pMainFrame->UpdateWindow();
3. 使CXXView继承CScrollView而不是CView
4. 在CXXView::OnInitialUpdate()函数中设置滚动
void CXXView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); // TODO: 在此添加专用代码和/或调用基类 //COpenCVMFCTestDoc* pDoc = GetDocument(); //if(pDoc->m_Image.GetImage() != NULL) // GetParentFrame()->MoveWindow(0, 0, pDoc->m_Image.Width(), pDoc->m_Image.Height()); CSize sizeTotal; sizeTotal.cx = sizeTotal.cy = 100; SetScrollSizes(MM_TEXT, sizeTotal); }
5. 在CXXDoc类中添加成员变量
CvvImage m_Image;
6. 在CXXDoc类中添加函数
BOOL CXXDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; // TODO: 在此添加您专用的创建代码 m_Image.Load(lpszPathName, 1); return TRUE; } BOOL CXXDoc::OnSaveDocument(LPCTSTR lpszPathName) { // TODO: 在此添加专用代码和/或调用基类 m_Image.Save(lpszPathName); return TRUE; }
7. 在CXXView::OnDraw(CDC* pDC)函数中添加代码
// CXXView 绘制 void COpenCVMFCTestView::OnDraw(CDC* pDC) { COpenCVMFCTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 CvvImage& img = pDoc->m_Image; if (img.GetImage() != NULL) { CSize sizeTotal; sizeTotal.cx = img.Width(); sizeTotal.cy = img.Height(); SetScrollSizes(MM_TEXT, sizeTotal); img.Show(pDC->GetSafeHdc(), 0, 0, img.Width(), img.Height(), 0, 0); } }
相关文章推荐
- 使用Opencv调用摄像头并在MFC中进行视频显示
- (五)OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用
- MFC和opencv一起使用时会莫名奇妙出现内存泄露问题
- MFC下使用opencv出现内存泄露的解决办法
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
- 使用OpenCv库的MFC程序在退出后报内存泄露Detected memory leaks! 可能解决方法
- OpenCV學習筆記(8)VS2008 MFC下使用OpenCV2.0進行簡單圖像處理
- Opencv 2.4.6 +VS2010 MFC + StaticLib使用问题
- Opencv 2.4.6 +VS2010 MFC + StaticLib使用问题
- opencv图像处理(1.Visual C++6.0 MFC的使用)
- MFC中OpenCV使用
- 在MFC中使用OpenCV
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
- MFC使用OpenCv注意事项
- 使用OpenCV在MFC中显示图像
- OpenCV在MFC中的使用
- 在MFC对话框中显示图片的三种方法(有两种使用OpenCv)
- 解决opencv和mfc同时使用导致memory leak
- 在VC的MFC中使用控件,显示OpenCv取得的视频
- MFC中使用openCV显示、处理图像