if(!m_camera.isopen())
{
m_camera->open(id);
}
m_camera->open(id); //为什么在摄像头已经打开的时候还一定要加这一句才能成功she'zhi
if (!m_camera->set(CV_CAP_PROP_FRAME_WIDTH, w)) //设置帧宽
{
emit sig_str("set error");
return;
}
if (!m_camera->set(CV_CAP_PROP_FRAME_HEIGHT, h)) //设置帧高
{
emit sig_str("set error");
return;
}
if (!m_camera->set(CV_CAP_PROP_FORMAT, format)) //设置摄像头格式
{
emit sig_str("set error");
return;
}
double frameRate = m_camera->get(CV_CAP_PROP_FPS); //获取帧率
emit sig_Frame(frameRate);
//showVideo();
打开的动作应该是伴随着初始化的动作,这些设置会载入分辨率等等设置属性,要做到动态调节即时反馈这种效果最好是上层应用来实现,在opencv这种底层库中实现不经济也不必要,所以你在代码中修改完属性必须初始化一下设置才行。