我有一台Mobotix c25相机。它是一台IP摄像机,我以这种方式访问它的流:
Mat frame;
cv::VideoCapture vcap;
if(!vcap.open("http://(IP_address)/cgi-bin/faststream.jpg?stream=full&fps=25.0&data=v.mjpg")){
cout<<"Camera not found"<<endl;
}
正如您所看到的,我选择了每秒25帧。我想拯救他们每一个人。我这样做:
while (true){
vcap >> frame;
frameNumber++;
string fullPath = "Frame";
stringstream ss;
ss << frameNumber;
string num = ss.str();
fullPath.append(num);
fullPath.append(".jpg");
}
但是,我每秒只保存两帧,因为下一行需要大约400毫秒:
vcap&gt;&gt;帧;
我不知道为什么会有这么大的延迟...我倾向于认为这是相机参数产生的问题,你对此有什么想法吗?
提前致谢。
注意:我不知道它是否重要,但我使用的是相机的端口80.
答案 0 :(得分:0)
我终于解决了这个问题。我使用的链接是使用访客访问来抓取图像。
默认情况下,访客访问限制为2 fps。我已经在“语言和起始页” - >“访问者访问刷新率”的相机的“管理菜单”中对此进行了更改,现在我可以每秒捕获25帧。
答案 1 :(得分:0)
如果您不想惹恼来宾用户,则只需在URL中将“ cgi-bin”替换为“ control”即可检索不受限制的实时流。