与svm二进制文件的功能

时间:2013-10-12 23:04:29

标签: matlab function svm

我致力于图像质量评估Algortihms。我的问题如下:当我调用一个函数需要两个二进制文件(.Exe)文件(SVM分类所需)时,不在当前文件夹中(更改路径后,包括添加子路径),以便它提供结果A.当我把它放在函数所在的文件夹中时,它提供了一个结果B(正确的结果)。我不明白为什么这个指标提供两种不同的结果?我意识到当我将函数调用到它自己的目录时,它会识别我所说的EXE文件。但是当我调出当前目录时,它不知道.EXE !!

我注意到如果你在包含指标所有功能的文件夹中,它会给出一个结果。

如果你不在文件中,虽然你添加了包含代码的文件夹的路径和子路径,所以在测试之后,你将有第二个收入。

我在等你的回复。

谢谢。


我分别测试了包含二进制文件的代码(因此2从任何其他DLL中删除了二进制文件),但是当我在后面和我出去时,它的工作方式不同。当我在文件夹中时,程序识别(svm-predict和svm-scale)命令。当我出去的时候,程序不会识别它们并提供不同的结果。

我认为问题出在这里了?

我将代码放在此链接(http://www.4shared.com/zip/IrOOsChj/BIQI_release.html)中,您可以下载并测试它。 要测试只是加载一个图像,并调用该函数:score_quality = biqi(img)(在我的代码附带的读者中,作者说它不是必须先前安装了libsvm)。

非常感谢

1 个答案:

答案 0 :(得分:0)

理论:您使用的exe文件依赖于您的路径中有多个版本的一个或多个DLL(或其他链接代码)。例如,A.exe需要G.dll。 G.dll位于您的路径中的两个位置。从不同位置调用A.exe时,它使用不同的链接代码。

如果您有多个版本的A.exe并且路径中包含太多目录,也可能会发生这种情况。如果您恰好位于A.exe的主目录中,则使用该A.exe。当您在另一个目录中并键入A.exe时,您可能正在调用其他一些A.exe。

我建议将您的两个二进制文件重命名为非常具体的:foo1.exe和bar1.exe。在您的函数中使用这些名称。如果您的功能找不到这些,那么 移动 文件,直到它们位于正确的位置。不要复制!

祝你好运。