Python, cv2, предоставляет свои собственные ключевые точки

#python #orb #keypoint

#python #orb #ключевая точка

Вопрос:

У меня есть два изображения, которые я хочу сравнить. Для этой цели я использую orb.detect и orb.compute.

Моя проблема в том, что я хочу указать определенные ключевые моменты, и я не могу найти способ сделать это.

Я пробовал такие вещи, как:

 originalx = [-24,-23,-21,20,35,35]
originaly = [37,-25,-41,14,5,-51]
originalori = [1,0.4,1,0.3,1.1,1]
kp1 = []
for i in range(6):
    cv2.KeyPoint.pt[0] = originalx[i]
    cv2.KeyPoint.pt[1] = originaly[i]
    cv2.KeyPoint.angle = originalori[i]
    cv2.Keypoint.append(kp1)
  

для назначения обоих изображений назначьте определенные позиции, углы, data_id и т. Д. Однако я получаю сообщение об ошибке:

 AttributeError: 'builtin_function_or_method' object has no attribute 'pt'
  

Знает ли кто-нибудь, как я мог бы создавать свои собственные ключевые точки вместо того, чтобы orb.detect создавал свои собственные?

Заранее спасибо!

Комментарии:

1. Если атрибут pt не существует, может быть, атрибуты _pt вместо pt ? Я нашел это в оригинальной документации

2. Ваш цикл немного сомнителен, но вы можете передать аргументы KeyPoint конструктору в своем цикле: kp = cv2.KeyPoint(originalx[i], originaly[i], 1, angle= originalori[i]) kp1.append(kp) но я не знаю, какое значение было бы разумным _size (здесь я передал 1)

3. Это сработало, Эдхам; спасибо за помощь 🙂