在这个循环中似乎有些奇怪的事情发生了。我试图调试它,我没有解释发生了什么。
此代码来自另一个Stack Overflow帖子,我对它进行了一些编辑。
modelImages = ['/home/lie/Desktop/dylan.jpg','/home/lie/Desktop/melissa.jpg']
for modelImage in modelImages:
**print modelImage**
template=cv2.imread(modelImage)
templateg = cv2.cvtColor(template,cv2.COLOR_BGR2GRAY)
keys = surf.detect(templateg)
keys,desc = surfDescriptorExtractor.compute(templateg, keys)
count = 0
for h,des in enumerate(desc):
des = np.array(des,np.float32).reshape((1,64))
retval, results, neigh_resp, dists = knn.find_nearest(des,1)
res,dist = int(results[0][0]),dists[0][0]
if dist<0.1: # draw matched keypoints in red color
count=count + 1
print "space"**
重要部分有星号。这是代码的一部分,用于识别面部图像之间的相似性。代码的作用并不重要。奇怪的是,这个循环对于大小为2的数组执行1次。
输出结果为:
/home/lie/Desktop/dylan.jpg
/home/lie/Desktop/melissa.jpg
space
请注意,modelImages中的两个字符串都是在空格之前打印的。顺便说一下,这是从循环调用的函数的一部分。这似乎更像是一个python问题而不是opencv问题。这似乎有一个隐藏的继续声明
由于