我正在尝试在 OpenCV Java 中加载视频文件,并将问题范围缩小到以下代码:
import org.opencv.core.Core;
import org.opencv.videoio.VideoCapture;
public class OpenCVTest {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.loadLibrary("opencv_videoio_ffmpeg455_64");
VideoCapture capture = new VideoCapture("myVideoFile.avi");
System.out.println(capture.isOpened());
}
}
当然,这总是打印出“false”。使用
new VideoCapture(0)
访问我的计算机摄像头效果很好。在互联网上搜索后,我对为什么无法加载视频感到非常困惑。我遵循的指南建议我需要将“opencv_videoio_ffmpeg455_64.dll”添加到我的路径变量并调用System.loadLibrary
。我对此很陌生,说实话,我不明白 loadLibrary
的作用,或者我的设置和代码可能有什么问题。有任何想法吗?预先感谢。
这是类似问题的答案
System.loadLibrary("opencv_ffmpeg300_64");
VideoCapture vC = new VideoCapture("res/video.mp4");
opencv_ffmpeg300_64.dll
从 opencv\build\x64\vc11\bin
复制到
opencv\build\java\x64
请注意,64 和
.dll
可能因操作系统而异,这些适用于 Windows x64
事实证明,我使用了错误的文件路径。我(错误地)假设
new VideoCapture("my file")
会在编译后的 .class 文件所在的目录中搜索“我的文件”,而实际上它在项目根目录中搜索。无需打电话System.loadLibrary("opencv_videoio_ffmpeg455_64");