cv2.drawMatches, как соединить одну точку с m точками? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь соединить одну точку с точкой m, используя cv2.drawMatches, в качестве параметров я получаю, m и две картинки. Я должен щелкнуть одну точку из n самых сильных точек на первом изображении и обозначить эту точку m точками совпадения на втором изображении,

enter image description here

на картинке вы можете видеть, что код делает только одну строку, мне нужно m это код:

    if point is not None:
        # create BFMatcher object
        bf = cv2.BFMatcher(cv2.NORM_L1, crossCheck=False)

        # Match descriptors.
        single = [point]
        sub_des_L = sub_descriptors(single, keypoints_L, descripoints_L)
        matches = bf.match(sub_des_L, sub_des_R)
        #sub_des_L= sub_descriptors(sort_kp_L, keypoints_L, descripoints_L)
        #matches = bf.match(sub_des_L, sub_des_R)

        # Sort them in the order of their distance.
        matches = sorted(matches, key=lambda x: x.distance)
        for x in matches:
            print(x.trainIdx)

        print(len(sort_kp_L))
        img3 = cv2.drawMatches(img_L, single, img_R, sort_kp_R, matches, None,
                               flags=0)
        cv2.imshow("result", img3)

что я делаю неправильно?

...