平常使用opencv显示图像时总是跳出一个个窗口,这样很难与MFC继承,而在opencv提供的CvvImage类中很好的使MFC中显示IplImage类的图片。
CvvImage类在opencv的highgui.h头文件中被声明(在opencv2.0以后的版本中,这个类好像被去掉了,显得非常不方便,可以从低版本中拷贝到高版本中,实现这个类,仍可以使用)
在CXXXView中显示IplImage
void CXXXView::DrawIplImage2DC(IplImage *img)
{
if (img!=NULL)
{
CDC *pDC = GetDC();
HDC hDC = pDC->GetSafeHdc();
CRect rect;
rect.SetRect(0,0,img->width,img->height);
CvvImage cvvimg;//在opencv的highgui.h头文件中
cvvimg.CopyOf(img);
cvvimg.DrawToHDC(hDC,&rect);
UpdateData(TRUE);
ReleaseDC(pDC);
}
}
在图片控件中显示IplImage图片
void CXXXDlg::DrawIplImage2DC(IplImage *img,UNIT ID)
{
if (img!=NULL)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC = pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect)
CvvImage cvvimg;//在opencv的highgui.h头文件中
cvvimg.CopyOf(img);
cvvimg.DrawToHDC(hDC,&rect);
UpdateData(TRUE);
ReleaseDC(pDC);
}
}
CvvImage类在opencv的highgui.h头文件中被声明(在opencv2.0以后的版本中,这个类好像被去掉了,显得非常不方便,可以从低版本中拷贝到高版本中,实现这个类,仍可以使用)
在CXXXView中显示IplImage
void CXXXView::DrawIplImage2DC(IplImage *img)
{
}
在图片控件中显示IplImage图片
void CXXXDlg::DrawIplImage2DC(IplImage *img,UNIT ID)
{
}