cvCreateFileCapture总是返回“NULL”

问题描述:

我正在一个iPhone应用程序内和Xcode 4.3.3和OpenCV 2.4cvCreateFileCapture总是返回“NULL”

我使用了“cvCreateFileCapture(” simtom.mp4“)”摆脱”的MP4' 文件框但不幸的是,cvCreateFileCapture()总是返回“NULL”。

什么问题?

这是我的源代码。

CvCapture *m_pMusicVideo;  

m_pMusicVideo = cvCreateFileCapture("simtom.mp4"); 

确保simtom.mp4文件与您的可执行文件在同一个文件夹中。如果您将它放在与源文件相同的文件夹中,它将不会被找到。在Xcode 4中,这意味着派生的数据文件夹。转到Xcode - >首选项 - >位置,看看它在哪里。

编辑

我不知道你试图到iOS下运行。 (我在你的问题中添加了该标签。)然后,你的问题是,simtom.mp4文件不会与应用一起被复制到iPhone。为了实现这一点,您需要将simtom.mp4嵌入到您的应用程序包中并从此处打开它。你应该能够得到文件路径与

[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"simtom.mp4"]; 

您在目标的Build阶段的捆绑文件:

Build Phase

这里是开发者文档on NSBundle resources。一般Bundle Programming Guide也是一个很好的阅读。

+0

我搬到了 “simtom.mp4” 路径 “/用户/ 1w1w /库/开发商/ Xcode中/ DerivedData/ARDemo-hiarxwwvdhkhsceukxohkbyxxguy /编译/产品/调试-的iPhoneOS /” 然而cvCreateFileCapture()仍然返回NULL。 我该如何解决这个cvCreateFileCapture()问题? – user1553247 2012-08-03 19:40:08

+0

哦。我看到你编辑的答案。所以我知道我的“simtom.mp4”不在“Bundle Resources”中。然后我在“Bundle Resources”中添加了我的“simtom.mp4”。所以我正确地检查了我的“simtom.mp4”是“Bundle Resources”。但是我的cvCreateFileCapture()仍然返回NULL。 我在我的“Bundle资源”中明确添加了“simtom.mp4”。 所以我猜opencv 2.4可能有一些问题来处理'.mp4'文件。你知道关于opencv 2.4中cvCreateFileCapture()的内容吗? – user1553247 2012-08-04 02:20:24

+0

无法用'cvCreateFileCapture(“simtom.mp4”)打开它;'.mp4文件与包中的可执行文件不在同一文件夹中。您需要预先安装文件路径。这就是'[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@“simtom.mp4”];'是for。 – SSteve 2012-08-04 16:19:37