在“基于mfc 通过openCV播放avi视频及多显示窗口实现”一文中解决了视频播放和多窗口显示问题。但显示的为3通道IplImage图像。要显示单通道图像。则需要修改DrawPicToHDC函数。具体修改如下:
void COpencvtestDlg::DrawPicToHDC(IplImage *img, UINT ID)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
//cimg.CopyOf(img); 改为
cimg.CopyOf(img,img->nChannels);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
}