عباس خدائیان
عباس خدائیان
خواندن ۲ دقیقه·۲ سال پیش

اسكن QR Code توسط زبان پايتون به صورت آنلاین

تصویر QR Code با محتوای لینک دانشگاه ایوان کی
تصویر QR Code با محتوای لینک دانشگاه ایوان کی

منظور از اسکن به صورت آنلاین، یعنی بدون استفاده از تصویر ثابت و با استفاده از Webcam یا دوربین لپ تاپ و گوشی امکان خواندن و استخراج QR Code فراهم گردد.

جهت اسكن QR Code در مرحله اول دسترسي از زبان پايتون به دوربین لپ تاب انجام میشود. به این منظور کتابخانه OpenCV باید توسط Command Promptپایتون نصب شوند.

pip install OpenCV

در مرحله بعد هر دو كتابخانه را جهت استفاده در برنامه import ميكنيم. از cv2جهت دسترسي به دوربين و خواندن كد QR استفاده ميشود.

import cv2

گرفتن تصاوير دوربين وب كم توسط كلاس VideoCaptureدر cv2 انجام ميشود. همچنين رمز گشايي كد QRنيز توسط كلاس QRCodeDetector انجام ميگردد.

vCapture = cv2.VideoCapture(0) qrDetector = cv2.QRCodeDetector()

جهت خواندن مداوم وب کم از یک حلقه استفاده میشود.

while True: ret, img = vCapture.read()

جهت رمز گشایی کد QRاز تابع detectAndDecode استفاده میشود.

data, bbox, qrcode = qrDetector.detectAndDecode(img)

در مرحله بعدی تصاویر دریافتی از وب کم به صورت یک ویدئو در یک پنجره جدید به کاربر نمایش داده خواهد شد.

cv2.imshow(&quotQR Code Scanner&quot, img)

جهت خروج کاربر از حلقه بدون خواندن کد QR کلید q در صفحه کلید در نظر گرفته شده است.

if cv2.waitKey(1) == ord(&quotq&quot): break

در نهايت مقدار رمز گشايي شده ي كد QR نمايش داده ميشود.

در اين مثال : http://www.eyc.ac.ir


کد کامل به شرح ذیل است:

&quot&quot&quot Created on Sat Oct 15 11:02:38 2022 @author: Khodaeian &quot&quot&quot import cv2 # initialize the webcam for capturing QR Code vCapture = cv2.VideoCapture(0) # initialize the cv2 QRCode detector qrDetector = cv2.QRCodeDetector() a = '' while True: ret, img = vCapture.read() # detect and decode data, bbox, qrcode = qrDetector.detectAndDecode(img) # check if there is a QRCode in the image if data: a = data break # show the video capturing in new window cv2.imshow(&quotQR Code Scanner&quot, img) # press the q it will stop the video streaming if cv2.waitKey(1) == ord(&quotq&quot): break print(str(a)) vCapture.release() cv2.destroyAllWindows()


Reference:

[1] https://morioh.com/p/29f7e4c5f900

[2] https://docs.opencv.org/4.x/de/dc3/classcv_1_1QRCodeDetector.html

[3] https://www.dynamsoft.com/codepool/opencv-python-webcam-barcode-reader.html

[4] https://www.geeksforgeeks.org/webcam-qr-code-scanner-using-opencv/

زبان پایتونqr code
شاید از این پست‌ها خوشتان بیاید