gpt4 book ai didi

python - SIFT 实现 Python 错误

转载 作者:行者123 更新时间:2023-11-28 19:23:35 27 4
gpt4 key购买 nike

我在 Python vlfeat.py 中使用来自 vlfeat.org 的 SIFT 实现。

我不断收到一条错误消息,指出太多索引,行号表明错误发生在执行read_features_from_file() 时。

我还注意到文件 features1.sift 是空的,这意味着在 执行 process_image() 时出现了问题。

代码片段:

from PIL import Image
from pylab import *
import vlfeat as vlf

vlf.process_image('semper1.jpg','features1.sift', params="--edge-thresh 10 --peak-thresh 5")
l1,d1 = vlf.read_features_from_file('features1.sift')
image = array(Image.open('semper1.jpg'))

vlf.process_image('semper2.jpg','features2.sift', params="--edge-thresh 10 --peak-thresh 5")
l2,d2 = vlf.read_features_from_file('feautures2.sift')
image2 = array(Image.open('semper2.jpg'))

matches = vlf.match(d1,d2)

imshow(image)

for k in xrange(len(matches)):
if matches[k] > 0:
plot(l1[k, 0], l1[k, 1], 'r.')
plot([l1[k,0], l2[matches[k,0],0]], [l1[k,1], l2[matches[k,0],1]], 'b-')

show()

这是 process_image 的样子:

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

最佳答案

尝试较旧的 vlfeat 版本我使用了二进制 vlfeat-0.9.21-bin.tar.gz 这给了我那个错误。尝试使用旧版本 vlfeat-0.9.20-bin.tar.gz。

关于python - SIFT 实现 Python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com