qq_33097303
斜阳日落
采纳率0%
2019-12-16 18:04 阅读 329

opencv在摄像头已开启的情况下修改摄像头分辨率为什么还要在打开一次

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();
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • ifluofeng ifluofeng 2019-12-16 19:44

    打开的动作应该是伴随着初始化的动作,这些设置会载入分辨率等等设置属性,要做到动态调节即时反馈这种效果最好是上层应用来实现,在opencv这种底层库中实现不经济也不必要,所以你在代码中修改完属性必须初始化一下设置才行。

    点赞 评论 复制链接分享

相关推荐