2013-10-12 3 views
0

Я работаю над оценкой качества изображения Algortihms. Моя проблема заключается в следующем: когда я вызываю функцию, которая нуждается в двух файлах (.exe) двоичных файлов (необходимых для классификации SVM), которых нет в текущей папке (после изменения пути, включая добавление дополнительных путей), чтобы он дал результат A. Когда я помещаю его в папку, где находится функция, так что она дает результат B (который является правильным результатом). Я не понимаю, почему эта метрика дает два разных результата? Я понял, что когда я вызываю функцию в свой собственный каталог, так что он распознает файлы EXE, которые я говорил. однако, когда я вызываю текущий каталог, он не знает .EXE !!Функция с двоичными файлами svm

Я замечаю, что если вы находитесь в папке, содержащей все функции метрики, она дает результат.

и если вы отсутствуете в файле, и хотя вы добавляете путь и подпуть папки, содержащей коды, поэтому после теста у вас будет второй доход.

Я жду вашего ответа.

спасибо.


Я тестировал код, содержащий двоичные файлы по отдельности (так, 2 disctincts исполняемых файлов из любого другого DLL), но опять же, это работает по-другому, когда я нахожусь в спине, и когда я выхожу. Когда я в папке, программа распознает команды (svm-pred и svm-scale). и когда я ухожу, программа не распознает их и дает другой результат.

Я думаю, проблема здесь?

Я поместил код по этой ссылке (http://www.4shared.com/zip/IrOOsChj/BIQI_release.html), вы можете скачать его и протестировать. Чтобы проверить загрузку изображения и вызвать функцию: score_quality = biqi (img) (В прочитанном мной кодексе автор говорит, что ранее не был установлен libsvm).

Большое спасибо

ответ

0

Теория: ехе файлы, которые вы используете полагаются на один или несколько библиотек DLL (или другого связанного кода), для которых у вас есть несколько версий на вашем пути. Например, для A.exe требуется G.dll. G.dll находится в двух местах на вашем пути. Когда вы вызываете A.exe из разных мест, он использует другой связанный код.

Это может произойти, если у вас есть несколько версий A.exe и у вас слишком много каталогов на вашем пути. Если вы находитесь в домашнем каталоге A.exe, он использует этот файл A.exe. Когда вы находитесь в другом каталоге и наберите A.exe, вы можете вызвать другой файл A.exe.

Я рекомендую переименовать ваши ваши двоичные файлы что-то очень специфичное: foo1.exe и bar1.exe. Используйте эти имена в своей функции. Если ваша функция не находит их, то переместите файлы, пока они не находятся в правильном месте. Не делайте копии!

Удачи.

Смежные вопросы