From 3f4ec3596ebfdfb770ef7cf0f0d8a98cd0516554 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 13 Jun 2023 15:38:26 +0300 Subject: [PATCH] Added Aruco-based QR code detection method to python sample. --- samples/python/qrcode.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/samples/python/qrcode.py b/samples/python/qrcode.py index 21b1a59073..73c6cd3bd2 100644 --- a/samples/python/qrcode.py +++ b/samples/python/qrcode.py @@ -33,6 +33,7 @@ class QrSample: self.multi = args.multi self.saveDetections = args.save_detections self.saveAll = args.save_all + self.arucoBased = args.aruco_based def getQRModeString(self): msg1 = "multi " if self.multi else "" @@ -104,7 +105,12 @@ class QrSample: return print('Run {:s} on image [{:d}x{:d}]'.format( self.getQRModeString(), inputimg.shape[1], inputimg.shape[0])) - qrCode = cv.QRCodeDetector() + + if self.arucoBased: + qrCode = cv.QRCodeDetectorAruco() + else: + qrCode = cv.QRCodeDetector() + count = 10 timer = cv.TickMeter() for _ in range(count): @@ -152,7 +158,10 @@ class QrSample: print("Press ' ' (space) to save result into images") print("Press 'ESC' to exit") - qrcode = cv.QRCodeDetector() + if self.arucoBased: + qrcode = cv.QRCodeDetectorAruco() + else: + qrcode = cv.QRCodeDetector() while True: ret, frame = cap.read() @@ -204,6 +213,10 @@ def main(): help="input image path (for example, 'opencv_extra/testdata/cv/qrcode/multiple/*_qrcodes.png)", default="", metavar="") + parser.add_argument( + '--aruco_based', + help="use aruco-based detector", + action='store_true') parser.add_argument( '-d', '--detect',