From a7941a0785c2eedb807c9009e74094ac8e19bd47 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Tue, 1 Jun 2021 04:36:30 +0300 Subject: [PATCH] Add test for QR recognition --- builder/test/qr.gif | Bin 0 -> 1045 bytes builder/test/qr.py | 39 +++++++++++++++++++++++++++++++++++++++ builder/test/tests.py | 2 ++ 3 files changed, 41 insertions(+) create mode 100644 builder/test/qr.gif create mode 100644 builder/test/qr.py diff --git a/builder/test/qr.gif b/builder/test/qr.gif new file mode 100644 index 0000000000000000000000000000000000000000..21abbb04fd8c90cd33b8b778f9f302946f879494 GIT binary patch literal 1045 zcmV+w1nT=oNk%v~VT1sL0Du4h|Ns90001li0001l0E7Sl0{(=LsmtvTqnxzbi?iOm z`wxcVNS5Y_rs~SJ?hD8AOxN~}=lag~{tpZaheTT7h)gP%OaxQuL`I*-DfPM}VYkr3 z)@pr*xmPWjJI;Eg>vH?-7Qw%7@jKl$%(3R`C5guX_{U~3C|6i<2wR_Fj9E&k%*QPIOpVM;myPS(3=MlG?Akm&oeRK)BK1(REwZ6*MxuB#=uO+V#NW7q^?G!d zv8W@S7(3!SEO+L`r;SG#9vhaGVvRV}@|AEI@nFhJKceMovNK@J5|gPu`gtem%&*N( zuDus^PTZT_-gX^2gk;l^3Cd(_mnB8kx;Y2GJ>0}-fya|42B}=7W6{`xT2F~-bJvqJ zfma6IJofL$*sq`dPS~mY4$tLBmm7$9{^f}Np(Cdq94O(Xwx4(N1^88U^D!k=d+RMm z7FgmDs9%LX>BEtPC#(ixXT4da6>TVR$k~I=8K>5SyJe`LYc3L}o@Lz$_}_~cTG)a_ zG|pzDb~v)2BT)B+*rO3~)%PB5Gr?8bCr6%FB8=%J=;Llgve)5<*|At9eNU3t0xSIl89z=S4ubIm%K@t-I{{6+2D;yn%88C8`3EvoPBn<myf!6tfHwJSSyaS8oFIuV9IA=m}*j3RkWWb zisYbqYP;pDd4`KAWPzgU8@4iP8XuspTKXn`oeD}RrR`?5;lcbWI9;{5Qe0?@l5A@w$Eu>3ZF{SlI5LJP zlPcSS+};Z;%MP9#=gp{`3uUXE0(qCTLCcEo3b9RFYST2o%y85uJ1un5DhO=#i3VdF z@WNH?%QbhpvL$g|0)zYOkJJj=>$fWF8L7>I%}saRcHfP6-g@uNci(>h4S3*!4^DXD Ph98c2;)*ZcK>+|ec#0Yi literal 0 HcmV?d00001 diff --git a/builder/test/qr.py b/builder/test/qr.py new file mode 100644 index 00000000..4f3a4982 --- /dev/null +++ b/builder/test/qr.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +# Test QG recognition example +# Should be synced with the documentation: /docs/en/camera.md, /docs/ru/camera.md + +import rospy +from pyzbar import pyzbar +from cv_bridge import CvBridge +from sensor_msgs.msg import Image + +bridge = CvBridge() + +rospy.init_node('barcode_test') + +# Image subscriber callback function +def image_callback(data): + cv_image = bridge.imgmsg_to_cv2(data, 'bgr8') # OpenCV image + barcodes = pyzbar.decode(cv_image) + for barcode in barcodes: + b_data = barcode.data.encode("utf-8") + b_type = barcode.type + (x, y, w, h) = barcode.rect + xc = x + w/2 + yc = y + h/2 + print("Found {} with data {} with center at x={}, y={}".format(b_type, b_data, xc, yc)) + rospy.signal_shutdown() + +image_sub = rospy.Subscriber('main_camera/image_raw', Image, image_callback, queue_size=1) + +# ============================================================================== +# Publish test image + +print('Testing QR code recognition') +import cv2 +img = cv2.imread('qr.gif') +image_pub = rospy.Publisher('main_camera/image_raw', Image, image_callback, queue_size=1) +image_pub.publish(bridge.cv2_to_imgmsg(img)) + +rospy.spin() diff --git a/builder/test/tests.py b/builder/test/tests.py index 319bdc64..fc9bd971 100755 --- a/builder/test/tests.py +++ b/builder/test/tests.py @@ -29,3 +29,5 @@ import pigpio from pyzbar import pyzbar print(cv2.getBuildInformation()) + +from . import qr