OpenCv顯示視窗移植到MFC
阿新 • • 發佈:2019-02-06
OpenCv中提供了cvNamedWindow函式建立視窗,然後在該視窗中進行操作,比如顯示cvShowImage,
但是很多時候我們要將OpenCv程式移植到我們的程式中,比如MFC中的文件類和基於對話方塊類,下面
就是OpenCv在這兩類顯示的方法。
1.SDI
HWND *pwnd;CRect rect;CDC *pDC;HDC hDC;CvvImage m_CvvImage;
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
pwnd = pMain;
pDC =pwnd->GetDC();
hDC= pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
然後在cvShowImage的地方有下面程式碼
m_CvvImage.CopyOf(image,1);
m_CvvImage.DrawToHDC(hDC, &rect);
2.對話方塊
和在SDI中大多雷同,只是在對話方塊的時候,我們要用picture控制元件,如果其ID為ID_SHOWPIC
HWND *pwnd;CRect rect;CDC *pDC;HDC hDC;CvvImage m_CvvImage;
pwnd=GetDlgItem(ID_SHOWPIC);
pDC =pwnd->GetDC();
hDC= pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
其他地方和SDI中一樣。
但是很多時候我們要將OpenCv程式移植到我們的程式中,比如MFC中的文件類和基於對話方塊類,下面
就是OpenCv在這兩類顯示的方法。
1.SDI
HWND *pwnd;CRect rect;CDC *pDC;HDC hDC;CvvImage m_CvvImage;
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
pwnd = pMain;
pDC =pwnd->GetDC();
hDC= pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
然後在cvShowImage的地方有下面程式碼
m_CvvImage.CopyOf(image,1);
m_CvvImage.DrawToHDC(hDC, &rect);
2.對話方塊
和在SDI中大多雷同,只是在對話方塊的時候,我們要用picture控制元件,如果其ID為ID_SHOWPIC
HWND *pwnd;CRect rect;CDC *pDC;HDC hDC;CvvImage m_CvvImage;
pwnd=GetDlgItem(ID_SHOWPIC);
pDC =pwnd->GetDC();
hDC= pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
其他地方和SDI中一樣。