opencv 在 mac osx 中不显示视频
Posted
技术标签:
【中文标题】opencv 在 mac osx 中不显示视频【英文标题】:opencv does not display a video in mac osx 【发布时间】:2013-04-18 16:52:07 【问题描述】:我刚刚在我的 Mac 上安装了 OSX 10.8.3 的 opencv,我用 brew 安装了它:
brew install opencv
版本是2.4.3
>>> ls /usr/local/Cellar/opencv
2.4.3
我尝试显示视频。格式是.asf,编解码器是MJPG(我只能用VLC打开,看截图)
帧数(如果在opencv中打印出来或在VLC中看到)是相同的。
但如果我运行 opencv 程序,则只显示第一帧。另一个不是..为什么??
这是opencv代码
#include <iostream>
#include <string>
#include <sstream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
Mat frame;
int numframe = 0;
if (argc != 2)
cout << "Not enough parameters" << endl;
return -1;
const string source = argv[1];
VideoCapture capture(source);
namedWindow("video", CV_WINDOW_AUTOSIZE);
if (!capture.isOpened())
cout << "Could not open " << source << endl;
return -1;
for(;;)
capture >> frame;
numframe++;
if (frame.empty())
cout << "frame empty.." << endl;
break;
cout << numframe << endl;
imshow("video", frame);
return 0;
【问题讨论】:
【参考方案1】:之后:
imshow("video", frame);
呼叫:
waitKey(10);
必须调用cv::waitKey()
才能显示窗口。该参数是窗口将保持打开状态的毫秒数。此函数返回在此期间按下的键的 ASCII 码。
理想情况下,您可以将 10
替换为使其以正确的 FPS 显示帧的数字。换句话说:cv::waitKey(1000 / fps);
【讨论】:
【参考方案2】:尝试在启用 FFMPEG 支持的情况下编译 OpenCV,以便访问更多编解码器。如果brew不行,用brew安装ffmpeg和cmake,然后在github上抓取OpenCV的源码重新编译。
【讨论】:
如何查看是否已经支持 ffmpeg?因为我是这么认为的 我看到你的问题已经解决了。但是,为了将来参考,您可以使用函数 cv::getBuildInformation() 来获取已编译模块的详细信息。以上是关于opencv 在 mac osx 中不显示视频的主要内容,如果未能解决你的问题,请参考以下文章
安装opencv python mac osx 10.11?