Mundarija:

Pythonda OpenCV yordamida QR kod skaneri: 7 qadam
Pythonda OpenCV yordamida QR kod skaneri: 7 qadam

Video: Pythonda OpenCV yordamida QR kod skaneri: 7 qadam

Video: Pythonda OpenCV yordamida QR kod skaneri: 7 qadam
Video: [Python] Работа с QR | Как считать и сгенерировать QR код? 2024, Iyul
Anonim

Zamonaviy dunyoda biz QR-kod va shtrix-kodni deyarli hamma joyda ishlatamiz, mahsulotni qadoqlashdan tortib to onlayn to'lovlarga qadar va hozir biz menyuni ko'rish uchun hatto restoranda ham QR-kodlarni ko'ramiz.

Shubhasiz, bu hozir katta fikr. Lekin siz hech qachon bu QR -kod qanday ishlashini yoki u qanday skanerlanishini va biz kerakli ma'lumotlarni olayotganimizni hech o'ylab ko'rganmisiz? Agar bilmasangiz, javob uchun to'g'ri joydasiz.

Ushbu qo'llanmada siz Python va OpenCV yordamida QR kodli skanerni yutib olishni o'rganasiz

Ta'minot:

  1. Python (3.6, 3.7, 3.8 tavsiya etiladi)
  2. OpenCV kutubxonasi
  3. Pyzbar kutubxonasi

1 -qadam: 1 -qadam: kutubxonalarni import qilish

1 -qadam: kutubxonalarni import qilish
1 -qadam: kutubxonalarni import qilish

Keling, kerakli kutubxonalarni import qilishdan boshlaylik.

Shunday qilib, biz 3 ta kutubxonadan foydalanamiz

1. OpenCV

2. Noqulay

3. Pyzbar

2 -qadam: 2 -qadam: Veb -kameraga kirish

2 -qadam: veb -kameraga kirish
2 -qadam: veb -kameraga kirish

Bu erda biz OpenCV -dan VideoCapture funktsiyasidan foydalangan holda veb -kameramizga kiramiz, shuningdek chiqish oynamizning kengligi va balandligini o'rnatamiz.

Bu erda muhim nuqta shundaki, agar siz ichki veb -kamerangizdan foydalansangiz, VideoCapture funktsiyasida 0 -ni, agar siz exteranl veb -kamerasini ishlatayotgan bo'lsangiz, 1 -raqamni o'tkazing.

Endi 6 -qatorda biz chiqish oynamiz balandligini 640 deb belgilaymiz (3 balandlik uchun ishlatiladi)

7 -qatorda biz chiqish oynasining balandligini 480 deb belgilaymiz (4 balandlik uchun ishlatiladi)

3 -qadam: 3 -qadam: Kadrlarni o'qish

3 -qadam: ramkalarni o'qish
3 -qadam: ramkalarni o'qish

Veb -kameradan kadrlarni o'qish juda oddiy. Vaqt tsiklini qo'shish kifoya qiladi va ichida loop ikkita o'zgaruvchini yaratadi, ya'ni ret va ramka "cap.read ()" yordamida freymlarni o'qiydi.

Endi sizning barcha ramkalaringiz o'zgaruvchan "ramka" da saqlanadi.

4 -qadam: 4 -qadam: Ma'lumotlarni shtrix -koddan o'qish

4 -qadam: Shtrix -koddan ma'lumotlarni o'qish
4 -qadam: Shtrix -koddan ma'lumotlarni o'qish

Endi biz shtrix -koddan ma'lumotlarni o'qiy oladigan for loop yaratamiz.

Shunday qilib, biz QR -kod ma'lumotlarini dekodlash uchun import qilingan "dekodlash" dan foydalanmoqchimiz

va biz uni "myData" o'zgaruvchisida saqlaymiz va ma'lumotlarning to'g'riligini tekshirish uchun chop etamiz

5 -qadam: 5 -qadam: QR kod atrofida to'rtburchaklar chizish va ma'lumotlarni ko'rsatish

5 -qadam: QR kod atrofida to'rtburchaklar chizish va ma'lumotlarni ko'rsatish
5 -qadam: QR kod atrofida to'rtburchaklar chizish va ma'lumotlarni ko'rsatish

Shunday qilib, avval biz pts o'zgaruvchini yaratamiz, bu bizga QR kodimizning 4 burchak nuqtasini beradi

Endi bu nuqtalardan foydalanib, biz QR kodimiz atrofida 16-18 qatorda ko'rsatilgandek to'rtburchaklar hosil qilamiz

Matnni ko'rsatish uchun bizning ma'lumotlarimiz saqlanadigan myData o'zgaruvchisi ishlatiladi

6 -qadam:

Rasm
Rasm

Va nihoyat, biz OpenCV -da "imshow" funktsiyasidan foydalanib, o'z ramkamizni ko'rsatmoqdamiz

22-23-satrda biz "q" tugmachasini bossak, dastur tugashini dasturlashtirganmiz

Tavsiya: