From 5fc8581a3fb1b6db99b2230b08b025ee69107b34 Mon Sep 17 00:00:00 2001 From: 283375 Date: Wed, 16 Aug 2023 18:13:31 +0800 Subject: [PATCH] impr(sift_db): minor improvements --- src/arcaea_offline_ocr/sift_db.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/arcaea_offline_ocr/sift_db.py b/src/arcaea_offline_ocr/sift_db.py index 11be09f..d249dae 100644 --- a/src/arcaea_offline_ocr/sift_db.py +++ b/src/arcaea_offline_ocr/sift_db.py @@ -16,6 +16,9 @@ class SIFTDatabase: self.__descriptors = [] self.__size = None + self.__sift = cv2.SIFT_create() + self.__bf_matcher = cv2.BFMatcher() + if load: self.load_db() @@ -43,6 +46,14 @@ class SIFTDatabase: def size(self, value: Tuple[int, int]): self.__size = value + @property + def sift(self): + return self.__sift + + @property + def bf_matcher(self): + return self.__bf_matcher + def load_db(self): conn = sqlite3.connect(self.db_path) with conn: @@ -75,9 +86,12 @@ class SIFTDatabase: self, __img: Mat, *, - sift=cv2.SIFT_create(), - bf: cv2.BFMatcher = cv2.BFMatcher(), + sift=None, + bf=None, ) -> Tuple[str, float]: + sift = sift or self.sift + bf = bf or self.bf_matcher + img = __img.copy() if self.size is not None: img = cv2.resize(img, self.size)