MFC+Opencv在單文件程式中顯示出一幅影象
在MFC中顯示一幅影象程式是十分複雜的,而在Opencv中讀入一幅影象只需要一句話,而且很多的影象處理操作都需要使用Opencv中已有的函式,所以在MFC中呼叫Opencv的函式顯示一幅影象是很必要的操作。現在網上很多相關的描述都很不詳盡,我總結並編寫程式測試後,依次介紹在對話方塊程式和單文件程式中顯示一幅影象。(假設在VS平臺上已經按照要求配置好Opencv)
1、 新建一個單文件程式ReadImageMenu(你可以自己命名),在資源檢視的選單中加入一個讀入影象的選單,並在view中新增響應函式。
2、 同樣,在解決方案資源管理器中新增CvvImage.h和CvvImage.cpp(下載見附件)。
3、 在ReadImageMenuView.h中新增#include“CvvImage.h”
4、 在ReadImageMenuView.h的public申明中新增 CvvImage cimg定義(作為讀入影象的全域性申明),。
5、 在讀入影象的響應函式中新增程式碼
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
{
CString m_FilePath = dlg.GetPathName();
char * path = (LPSTR)(LPCTSTR)m_FilePath;
IplImage * Input_Img = cvLoadImage("lifehappy.jpg", CV_LOAD_IMAGE_COLOR);
cimg.CopyOf(Input_Img);
Invalidate();
6、 在ReadImageView.cpp中的Ondraw函式中新增程式碼,實現顯示影象功能。
CRect r;
GetClientRect(&r);
SetRect(r, 0, 0, cimg.Width(), cimg.Height()); //將cimg顯示出來
cimg.DrawToHDC(pDC->GetSafeHdc(), r);
7、 執行程式點選讀入影象選單,就可以實現讀入影象操作。
轉:https://blog.csdn.net/kuaiyangliukuai/article/details/50118455