将opencv中的图像显示在VC的控件中

  // 用于在控件 ID 上显示图片 img
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf(img);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);

需要注意的是,如果采用GetDC()来获取CDC的句柄,需要在显示结束时,调用ReleaseDC()来释放此句柄。而通过
CClientDC dc(this)来获得的句柄,则不需要在显示结束时释放。

其中的rect为控件所获取的矩形区域,它需要通过 ScreenToClient()转换为窗口坐标。
GetDlgItem(IDC_XXXX)->GetWindowRect(&rect);
ScreenToClient(&rect);

其中的CvvImage在highgui.h中定义,因此如果使用到此图像类来显示图像,需要
#include "highgui.h"
同时将highgui.lib 或者 highgui.dll 加载到工程中来。



你可能感兴趣的:(将opencv中的图像显示在VC的控件中)