opencv摄像头异常处理

  • 摄像头打开失败
  • 摄像头中途拔插,掉电
cv::VideoCapture capture(camera_id_);
cv::Mat frame;
while (!capture.isOpened())
{
    ROS_INFO("%s open fail!", camera_id_.c_str());
    sleep(3);
    capture.open(camera_id_);
}
while (ros::ok())
{
    capture >> frame;
    if (frame.empty())
    {
        capture.release();
        capture.open(camera_id_);
        while (!capture.isOpened())
        {
            ROS_INFO("%s open fail!", camera_id_.c_str());
            sleep(3);
            capture.open(camera_id_);
        }
        continue;
    }
}

你可能感兴趣的:(小功能)