0

I am using the Sift implementation by Vlfeat.org. It has the follwing function which is supposed to save the features to a file.

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

Here how the line "os.system(cmmd)" is supposed to write the results in a file?

I am on an ubuntu machine and if I execute "sift" as command in terminal, I am getting the result as "not found". On linux, which process is this command trying to invoke? I need to save these Sift features into a file so that later I can use it to create Bag of Words descriptor for clustering.

A similar sift implementation at https://github.com/jesolem/PCV/blob/master/PCV/localdescriptors/sift.py also uses the same line to save the result into file.

Erdnase
  • 750
  • 3
  • 12
  • 25

1 Answers1

0

On linux, which process is this command trying to invoke?

This refers to the command-line tool provided by vlfeat (see 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
...

You can either use the binary distribution from vlfeat download page (see bin/glnxa64/sift for Linux 64-bit), or directly clone the repo and compile it from sources.

Make sure to adjust the path with cmmd = str("/path/to/sift " ...) or install (= copy it) under a common path like /usr/local/bin.

deltheil
  • 15,496
  • 2
  • 44
  • 64
  • Thank you...! This worked. I have added the path of sift to the system path so that I don' have to adjust the path in the code. However this is working in terminal but Pydev is not taking this path change and I am forced to change the path in the code. – Erdnase Nov 04 '14 at 13:26