2014-11-01 2 views
0

Я использую реализацию Sift Vlfeat.org. Он имеет функцию follwing, которая должна сохранять функции в файле.Просеивание реализации в Vlfeat

def process_image(imagename,resultname,params="--edge-thresh 10 --peak-thresh 5"): 
""" process an image and save the results in a file""" 

if imagename[-3:] != 'pgm': 
    #create a pgm file 
    im = Image.open(imagename).convert('L') 
    im.save('tmp.pgm') 
    imagename = 'tmp.pgm' 

cmmd = str("sift "+imagename+" --output="+resultname+ 
      " "+params) 
os.system(cmmd) 
print 'processed', imagename, 'to', resultname 

Здесь как строка «os.system (cmmd)» должна записывать результаты в файл?

Я нахожусь на машине ubuntu, и если я выполняю команду «просеять» в терминале, я получаю результат как «не найден». В Linux, какой процесс пытается выполнить эта команда? Мне нужно сохранить эти функции Sift в файл, чтобы потом я мог использовать его для создания дескриптора Bag of Words для кластеризации.

Аналогичная реализация просеивания в https://github.com/jesolem/PCV/blob/master/PCV/localdescriptors/sift.py также использует ту же строку для сохранения результата в файл.

ответ

0

В Linux, какой процесс является этой командой, пытающейся вызвать?

Это относится к инструменту командной строки, представленной vlfeat (см vlfeat/src/sift.c):

$ ./sift 
Usage: ./sift [options] files ... 

Options include: 
--verbose -v Be verbose 
--help -h  Print this help message 
--output -o  Specify output file 
... 

Вы можете использовать бинарный дистрибутив из vlfeat download page (см bin/glnxa64/sift для Linux 64-бит), или непосредственно клонировать repo и скомпилировать его из источников.

Обязательно отрегулируйте путь с помощью cmmd = str("/path/to/sift " ...) или установите (= скопировать его) под общим путем, как /usr/local/bin.

+0

спасибо ...! Это сработало. Я добавил путь просеивания к системному пути, так что мне не нужно корректировать путь в коде. Однако это работает в терминале, но Pydev не меняет этот путь, и я вынужден изменить путь в коде. – Erdnase

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