我使用python3.4和naconda2.3.0在MacOS中尝试SIFT,但是在执行代码时总是找不到命令。vlfeat0.9.20 sift和lib文件也包括在内,但不知道出了什么问题。我的代码如下:
from PIL import Image
from numpy import *
from pylab import *
import os
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)
编译器的错误是:
^{pr2}$它无法传输到功能文件并发生故障
我已经从网上咨询过,尝试过一些修改,但仍然不起作用。从Python2.X到3.X还有其他的转换吗?谢谢
据我所知,SIFT命令行工具称为
sift
。但是由于错误的字符串操作,最后一个命令没有包含所需的空格,因此改为sifttmp.pgm output=IMG0232.sift edge-thresh
,这显然不存在。在更换
与
^{pr2}$上面的内容更清晰易读,并将包含当前代码中缺少的空格。 可能是}:
sift
可执行文件不在路径上,然后您可能必须给它一个完整(绝对)路径。E、 g.如果目录/User/foo/Applications/
中有{相关问题 更多 >
编程相关推荐