我想找出2张图片之间的相似度,但我收到了这个错误
if __name__ == '__main__':
img1 = sys.argv[0]
img2 = sys.argv[1]
# Create image objects
image1 = Image.open(img1)
image2 = Image.open(img2)
# Test pixel by pixel
get_image_pixel_similarity(img1, img2)
sys.argv中[1]。 IndexError:列表索引超出范围
如何解决我的问题?
答案 0 :(得分:1)
您需要调用您的程序:
./myscript.py path/to/img1 path/to/img2
此外,您的参数将位于sys.argv[1]
和sys.argv[2]
中,因为sys.argv[0]
存储了您的python文件的名称。
另外,如果使用cmd行参数,我建议进行一些错误检查,如下所示:
if __name__ == '__main__':
if len(sys.argv) < 3:
print('Insufficient arguments')
exit()
img1 = sys.argv[1]
img2 = sys.argv[2]
....
答案 1 :(得分:-1)
您输入的命令必须是:
python script.py img1 img2
然后,你必须使用:
img1 = sys.argv[1]
img2 = sys.argv[2]
我建议你在一行中这样做:
img1, img2 = sys.argv[1:2]
argv是一个以脚本名称开头的列表。