19,468
社区成员
发帖
与我相关
我的任务
分享
cv::Mat CCameraDS::QueryFrame()
{
long evCode, size = 0;
m_pMediaControl->Run();
m_pMediaEvent->WaitForCompletion(INFINITE, &evCode);
m_pSampleGrabber->GetCurrentBuffer(&size, NULL);
//if the buffer size changed
if (size != m_nBufferSize)
{
m_pFrame.release();
m_nBufferSize = size;
m_pFrame = cv::Mat(cv::Size(m_nWidth, m_nHeight), CV_8UC3);
}
m_pSampleGrabber->GetCurrentBuffer(&m_nBufferSize, (long*)m_pFrame.data);
cv::Mat output;
cv::flip(m_pFrame, output, 0); //旋转图像
return output;
}
frame = m_CamDS.QueryFrame();
//转换成IpImage来显示
IplImage image;
image = frame;
CvvImage cvvImage;
cvvImage.CopyOf(&image);
cvvImage.DrawToHDC(hDC,&rect);