我需要在 Matlab 中使用一个工具箱,该工具箱依赖于用 C 编写并使用 OpenCV 的外部程序。我正在使用 Ubuntu 14.04 64 位和 Matlab R2014b。
m 脚本用系统函数调用它,在 C 程序运行后,它会读取 C 程序应该生成的一些输出文件。这是失败的。我观察到文件没有被生成。
然后,我做的第一件事是验证 C 程序是否正常工作,方法是直接在终端中调用它,使用 m 脚本用来调用它的相同参数。然后它工作并生成了文件。因此,C 程序是正确且有效的。
回到Matlab,它又失败了。然后,我开始调试 C 程序,发现 OpenCV 函数 cvLoadImage 在从 Matlab 调用时无法打开文件。如果我在外面调用它,它会起作用。
我验证了传递给从 Matlab 和外部运行的函数的字符串,它完全相同,但是 Matlab 调用永远失败。我用ldconfig -p |验证了 Matlab 命令窗口中的grep opencv并显示库。更有趣的是,在有问题的函数起作用之前,还有其他对其他 ocv 函数的调用。只是这失败了。
问题是:这是我的部分配置错误的问题,还是Matlab中的错误?
提前致谢。
编辑
实际上,从 Matlab 内部调用附加到系统调用的sudo可以完成工作。奇怪的是,因为我使用chmod 777 -Rf作为整个文件夹中的最后一个资源,并验证我的用户是文件夹和 Matlab 进程的所有者。奇怪……虽然我每次使用脚本时都必须输入密码,但我的日程安排很紧,我认为这个解决方法现在已经令人满意了。