【opencv】VideoCapture打不开本地视频文件或者网络IP摄像头
1、前提:成功打开本地USB摄像头
// 创建VideoCapture对象 VideoCapture vc = new VideoCapture(); // 可以成功打开本地USB摄像头 // 参数可以是 0~n,结合自身情况 boolean ans = vc.open(0); // 返回结果为true System.out.println(ans);
2、当改为本地视频文件、图片文件or网络图片or网络IP摄像头地址时,打开错误!
// 创建VideoCapture对象 VideoCapture vc = new VideoCapture(); // 打开的音视频地址 String address = ""; // 测试本地视频文件 address = "D:/opencv/1.avi"; // 测试网络IP摄像头,通过rtsp来获取视频流 // 通用的rtsp地址格式为"rtsp://user:password@ip:port" // 此处使用的是科达的摄像头,后面添加的id =0为主码流,id=1为子码流 // 如果不知道你使用的摄相头格式,下载 ONVIF Device Manage 即可得到 address = "rtsp://admin:123456@192.168.XXX.XXX:554/id=0"; boolean ans = vc.open(address); // 返回结果为false System.out.println(ans);
3、解决办法:在配置opencv环境时,dll文件没有拷贝齐全!!常理情况下,你已经将opencv_java320.dll拷贝到jdk安装路径下的jre/bin目录下了,不然的话不能成功加载库。解决上面问题方法就是将你下载下来的 opencv解压后的 文件夹中bulid 文件夹下 相关的 dll 文件都拷贝到 jre/bin目录下。什么叫相关,那就是全部的dll都考进去!!保险些。至此打不开网络摄像头的问题解决!