import cv2# 读取图像img1 = cv2imread1pngimg2 = cv2imread2pngimg3 = cv2imread3pngimg4 = cv2imread4png# 创建ORB对象orb = cv2ORB_create# 检测特征点并提取描述符keypoints1 descriptors1 = orbdetectAndComputeimg1 Nonekeypoints
这个错误是由于在for循环中的matches12变量中的元素不是一个元组,而是一个单独的匹配对象。这可能是因为没有找到足够的匹配,导致matches12列表为空。因此,在解包元组之前,需要先检查matches12列表是否为空。可以使用以下代码进行修改:
对图像1和图像2的特征点进行匹配
matches12 = flann.knnMatch(descriptors1, descriptors2, k=2) good_matches12 = [] for match in matches12: if len(match) < 2: continue m, n = match if m.distance < 0.7 * n.distance: good_matches12.append(m)
原文地址: http://www.cveoy.top/t/topic/c06K 著作权归作者所有。请勿转载和采集!