Я хочу обнаруживать мемы. Ввод - это мем с некоторым текстом, а вывод должен быть тем, какой шаблон использовался.
Поэтому я ввожу мем и шаблон. в данном случае это правильный шаблон (плохой мем, извините), поэтому совпадений должно быть много. Но вывод таков:
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