ایجاد و خواندن کد QR با استفاده از پایتون

شکل ۱: ایجاد و خواندن کد QR با استفاده از پایتون
شکل ۱: ایجاد و خواندن کد QR با استفاده از پایتون
منتشر شده در towardsdatascience به تاریخ ۲۸ جولای ۲۰۲۱
لینک منبع: Create and Read QR code using Python

کد QR چیست؟

کدهای QR بارکدهای دو بعدی پیکسل شده قابل خواندن توسط ماشین هستند که می‌توانند برای ذخیره اطلاعات مورد استفاده قرار گیرند. QR در کد QR به معنای پاسخ سریع است. کد QR توسط یک مهندس ژاپنی به نام ماساهیرو از شرکت تولید کننده اتومبیل، دنسو ویو در سال ۱۹۹۴ برای ردیابی حرکت قطعات خودرو اختراع شد. کد QR در اواخر دهه ۲۰۱۰ با بهبود قابلیت‌های نوری تلفن‌های همراه و استفاده گسترده از آن‌ها، محبوبیت خود را افزایش داده‌است. امروزه کدهای QR برای کاربردهای مختلفی مانند پرداخت آنلاین، چک کردن منوی هتل، به اشتراک گذاشتن رمز عبور وای فای، به دست آوردن قیمت و جزئیات دیگر محصولات استفاده می‌شوند. کدهای QR آنقدر محبوب شده‌اند که حالا هر گوشی هوشمند جدیدی با کد خوان QR داخلی همراه است.

در این مقاله یاد می‌گیریم که چگونه کد QR را با استفاده از پایتون بخوانیم و تولید کنیم.

ایجاد کد QR

ماژول QR Code را نصب کنید.ما از بسته qrcode برای تولید کد QR استفاده خواهیم کرد. مرحله اول نصب بسته با استفاده از دستور pip است.

pip install qrcode

مستندات کامل بسته در صفحه اصلی PYPI بسته در دسترس قرار داد.

کد QR ساده

یک کد qr ساده را می توان با استفاده از عملکرد ساخت کد qr و عبور داده‌ها به عنوان آرگومان تولید کرد. کد زیر یک کد QR تولید می‌کند که « سلام جهان» را می‌خواند.

#Import Library
import qrcode#Generate QR Code
img=qrcode.make('Hello World')
img.save('hello.png')

شکل ۲: کد QR برای سلام جهان
شکل ۲: کد QR برای سلام جهان

شما می‌توانید از گوشی هوشمند خود برای خواندن کد بالا استفاده کنید.

دقت کنید: از گوشی خود برای خواندن کدهای تصادفی QR استفاده نکنید زیرا ممکن است شامل کد / لینک‌های مخرب باشد.

کد QR پیشرفته

کد QR می‌تواند با استفاده از شی QRCode که دارای پارامترهای زیر است، سفارشی شود:

۱. نسخه : 40 نسخه کد QR وجود دارد که اندازه کد را کنترل می کند. ۱ کوچک‌ترین و ۴۰ بزرگ‌ترین هستند. نسخه ۱ یک کد QR ماتریس ۲۱ X21 ایجاد می‌کند.

۲. تصحیح خطا: این پارامتر تصحیح خطا مورد استفاده برای کد QR را کنترل می‌کند. این مقدار از ۷٪ تا ۳۰٪ تصحیح خطا در زیر تغییر می‌کند. ERROR_CORRECT_L: حداکثر 7٪ ERROR_CORRECT_M: حداکثر 15٪ ERROR_CORRECT_Q: حداکثر 25٪ ERROR_CORRECT_H: حداکثر 25٪ ERROR_CORRECT_H: حداکثر 30٪

۳. مربع اندازه: این پارامتر تعداد پیکسل‌ها را در هر جعبه کد QR کنترل می‌کند.

۴. مرز: این پارامتر ضخامت مرز را کنترل می‌کند. مرز پیش‌فرض ۴ پیکسل ضخامت دارد.

شی QRCode دارای توابع زیر است که می‌تواند برای ایجاد QRCode استفاده شود.

۱. اضافه کردن داده‌ها محتوای کد QR می‌تواند به عنوان یک استدلال برای این عملکرد تصویب شود.

۲. اگر مطمئن نیستید از کدام نسخه از کد QR استفاده کنید، می‌توان نسخه را بصورت خودکار تنظیم کرد: الف. تنظیم پارامتر نسخه روی None و ب. تنظیم پارامتر مناسب ازmake به True.

۳. ساخت تصویر. این عملکرد کد QR را تولید می‌کند. همچنین می‌توان برای تنظیم رنگ پر رنگ و رنگ پس زمینه کد QR با استفاده از آرگومان‌های fill_color وback_color استفاده کرد.

کد زیر یک کد QR ایجاد می‌کند که به پروفایل medium ​​من اشاره می‌کند.

qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data("https://abhijithchandradas.medium.com/")
qr.make(fit=True)img = qr.make_image(fill_color="red", back_color="black")
img.save("medium.png")

شکل ۳:  کد پیشرفتهQR
شکل ۳: کد پیشرفتهQR

خواندن QR Code

ما از OpenCV برای خواندن کد QR استفاده خواهیم کرد. اگر بسته نصب نشده باشد، می توان آن را مانند زیر نصب کرد:

pip install cv2

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

import cv2img=cv2.imread("medium.png")
det=cv2.QRCodeDetector()
val, pts, st_code=det.detectAndDecode(img)
print(val)Output:
https://abhijithchandradas.medium.com/

تابعDetectAndDecode محتوای کد QR، مختصات گوشه‌های کد QR دوتایی را برمی‌گرداند. برای اطلاعات بیشتر در مورد خواندن کد QR با استفاده از OpenCV می‌توانید به مرجع کلاس OpenCV QRCodeDetector مراجعه کنید.

منابع:

کد آموزش در GitHub Repo من موجود است.

این متن با استفاده از ربات ترجمه مقالات علم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.