void CXPicProcessThrd::VideoCaptureProcess()
{
VideoCapture capture("D:\\1.mp4");
Mat frame;
CLocalSetting* pLocalSetting = (CLocalSetting*)CSettingManager::GetInstance().GetSettingByName(SETTING_LOCAL_SETTING);
CLocalSetting::CaptureSetting stCaptureSetting= pLocalSetting->GetCaptureSetting();
m_nCaptureIntervalTime=stCaptureSetting.nCaptureIntervalTime;
int nFrameInterval=25*1.0*m_nCaptureIntervalTime/1000;
if (capture.isOpened()) //判断视频是否成功打开
{
//capture.grab() 从视频文件或捕获设备中抓取下一个帧
long index=0;
int nPicIndex=0;
while (capture.grab()) {
if(index%nFrameInterval==0)
{
capture >> frame;
// imshow("读取视频", frame);//显示当前帧
IplImage *pImg = &IplImage(frame);
if( pImg )
{
nPicIndex++;
QString strName1=QString("D:\\ABC\\%1_ModelImage.jpg").arg(nPicIndex);
cvSaveImage(strName1.toLocal8Bit().data(), pImg);
}
}
index++;
waitKey(50);
}
}
}
{
VideoCapture capture("D:\\1.mp4");
Mat frame;
CLocalSetting* pLocalSetting = (CLocalSetting*)CSettingManager::GetInstance().GetSettingByName(SETTING_LOCAL_SETTING);
CLocalSetting::CaptureSetting stCaptureSetting= pLocalSetting->GetCaptureSetting();
m_nCaptureIntervalTime=stCaptureSetting.nCaptureIntervalTime;
int nFrameInterval=25*1.0*m_nCaptureIntervalTime/1000;
if (capture.isOpened()) //判断视频是否成功打开
{
//capture.grab() 从视频文件或捕获设备中抓取下一个帧
long index=0;
int nPicIndex=0;
while (capture.grab()) {
if(index%nFrameInterval==0)
{
capture >> frame;
// imshow("读取视频", frame);//显示当前帧
IplImage *pImg = &IplImage(frame);
if( pImg )
{
nPicIndex++;
QString strName1=QString("D:\\ABC\\%1_ModelImage.jpg").arg(nPicIndex);
cvSaveImage(strName1.toLocal8Bit().data(), pImg);
}
}
index++;
waitKey(50);
}
}
}