gpt4 book ai didi

opencv - 使用 OpenCV 从 AXIS 网络摄像机读取图像

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:48 24 4
gpt4 key购买 nike

我正在尝试使用 OpenCV 从我的程序访问 AXIS IP 摄像机。我的 OpenCV 版本是 3.1。我遵循本教程 link .

我已经安装了所有库。我的以下程序可以成功加载 mp4 视频。这意味着 ffmpeg 和必要的库工作正常。

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
int main() {
cv::VideoCapture vcap("test.mp4");
cv::Mat image;
// const string address = "rtsp://root:pass@192.168.0.90/axis-media/media.amp?camera=1";
// if(!vcap.open(address)){
// std::cout << "Error opening video stream or file " << std::endl;
// return -1;
// }
for(;;){
if(!vcap.read(image)){
std::cout << "No frame" << std::endl;
cv::waitKey(0);
}
cv::imshow("Display", image);
cv::waitKey(1);
}
return 0;
}

当我尝试如下访问网络摄像机时

cv::VideoCapture vcap("rtsp://root:pass@192.168.0.90/axis-media/media.amp?camera=1");

我有以下错误

GStreamer Plugin: Embedded video playback halted; module source reported: Could 
not open resource for reading and writing.
OpenCV Error: Unspecified error (GStreamer: unable to start pipeline
) in cvCaptureFromCAM_GStreamer, file /home/Softwares/opencv/opencv/modules
/videoio/src/cap_gstreamer.cpp, line 818
terminate called after throwing an instance of 'cv::Exception'
what(): /home/Softwares/opencv/opencv/modules/videoio/src/cap_gstreamer.
cpp:818: error: (-2) GStreamer: unable to start pipeline
in function cvCaptureFromCAM_GStreamer

用户是root,密码是pass,ip都是默认的192.168.0.90

我的 if 配置给了我

ifconfig
eth0 Link encap:Ethernet HWaddr b8:2a:72:c6:b8:13
inet6 addr: fe80::ba2a:72ff:fec6:b813/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:723959 errors:0 dropped:0 overruns:0 frame:0
TX packets:116637 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:199422245 (199.4 MB) TX bytes:13701699 (13.7 MB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:24829 errors:0 dropped:0 overruns:0 frame:0
TX packets:24829 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2502903 (2.5 MB) TX bytes:2502903 (2.5 MB)

wlan0 Link encap:Ethernet HWaddr a0:a8:cd:99:92:60
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

访问摄像头可能是什么问题?

谢谢

最佳答案

问题出在网络配置上。我需要如下设置静态 IP 地址。

auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1

然后重启电脑。

之后就可以使用了

cv::VideoCapture vcap("rtsp://root:pass@192.168.0.90/axis-media/media.amp?camera=1");

关于opencv - 使用 OpenCV 从 AXIS 网络摄像机读取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37783999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com