ORB Функция обнаружения и сопоставления не работает с текстом? - PullRequest
0 голосов
/ 30 марта 2020

Я хочу обнаруживать мемы. Ввод - это мем с некоторым текстом, а вывод должен быть тем, какой шаблон использовался.

Поэтому я ввожу мем и шаблон. в данном случае это правильный шаблон (плохой мем, извините), поэтому совпадений должно быть много. Но вывод таков:

https://i.stack.imgur.com/7ywRy.jpg

Как видите, он вообще не работает.

Часть моего кода, где происходит обнаружение функции.

import cv2
def get_matches(img1, img2):
    img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
    img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

    orb = cv2.ORB_create()

    img1_keypoints, img1_descriptor = orb.detectAndCompute(img1, None)
    img2_keypoints, img2_descriptor = orb.detectAndCompute(img2, None)

    matcher = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    matches = matcher.match(img1_descriptor, img2_descriptor)
    matches = sorted(matches, key=lambda x: x.distance)
    result = cv2.drawMatches(img1, img1_keypoints, img2,
                             img2_keypoints, matches, outImg=None, flags=2)

Как я могу сделать это лучше? Буду признателен за помощь:)

PS почему я хотел бы сделать это: matches = sorted(matches, key=lambda x: x.distance)? Это ничего не меняет с точки зрения вывода, если я вижу это правильно ... Я просто видел строку во многих местах (документация и т. Д. c.), Поэтому я реализовал ее lol

Также вот изображения:

https://i.stack.imgur.com/ajyOF.jpg https://i.stack.imgur.com/yLySI.jpg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...