在OpenCV中,我看到imread()和VideoCapture()都需要一个文件路径字符串来读取多种扩展名的文件。有没有办法获取它们支持的扩展名列表?例如获取"jpg"、"png"、"mov"、"mpg"等列表。我想这与系统相关,其他人也需要在运行时查询。
此外,支持是如何确定的呢?如果我有像下面的代码,并且得到的Mat始终似乎部分损坏(我可以看到一点图像),这该怎么办?无论我要求哪个帧数,它似乎都不会改变。我可以在我的视频播放器"totem"中播放这个视频,但我甚至不确定totem和OpenCV是否使用同一种编解码器来解码这个文件。
此外,支持是如何确定的呢?如果我有像下面的代码,并且得到的Mat始终似乎部分损坏(我可以看到一点图像),这该怎么办?无论我要求哪个帧数,它似乎都不会改变。我可以在我的视频播放器"totem"中播放这个视频,但我甚至不确定totem和OpenCV是否使用同一种编解码器来解码这个文件。
Mat fromVideo(std::string _videoPath, int frame) {
VideoCapture capture(_videoPath);
Mat f;
for (int i = 0; i < frame; i++) {
capture >> f;
}
return f;
}