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