Python for循环对大小为2的数组执行一次

2024-06-06 18:30:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个循环中似乎发生了一些奇怪的事情。我试着调试它,但我无法解释到底发生了什么。你知道吗

这段代码来自另一篇堆栈溢出文章,我对它做了一些编辑。你知道吗

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的问题。似乎有一个隐藏的继续站

谢谢


Tags: 代码inhomecountkeyscv2jpgdesktop