0
我使用Python 3.4與naconda 2.3.0在MacOS中嘗試SIFT,但執行我的代碼時總是找不到命令。 Vlfeat 0.9.20篩選和lib文件包括在內,但不知道有什麼問題。我的代碼如下:SIFT使用Python 3.4
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)
,並從編譯器錯誤是:
sh: sifttmp.pgm--output=IMG0232.sift--edge-thresh: command not found
不能轉移到功能文件,並打破了
我從網上諮詢和嘗試了一些修改,但它仍然無法正常工作。是否有從Python2.X到3.X的其他轉換?謝謝
感謝您的回覆。我修改了代碼,但它仍然不起作用,錯誤也是一樣的。我仔細檢查了Libvl,並篩選出與我的sift.py文件在同一個文件夾中。看起來,Python無法捕捉到傳輸數據的過程。也許問題是在Python 3.4中使用cmmd,是嗎? –
如果你做了我建議的改變,你不可能得到完全相同的錯誤信息。它可能是它仍然無法找到sift的可執行文件。在這種情況下,請添加完整路徑。我會更新我的答案以表明這一點。 –
謝謝,它成功了。儘管我可以得到篩選結果,但將路徑放入編程代碼的方式不可執行。我會繼續尋找更好的解決方案。 –