Project ini mendeteksi QR code dan barcode secara real-time dari webcam menggunakan:
opencv-pythonuntuk akses kamera dan visualisasipyzbaruntuk decode QR/barcodenumpyuntuk manipulasi titik poligon
Tested on: Windows 10/11 + Python 3.11.9. Versi Python lain seperti 3.12, 3.13, atau 3.14 bisa menimbulkan error DLL
libzbardi Windows, jadi disarankan menggunakan Python 3.11.
Pastikan komponen berikut sudah terpasang sebelum menjalankan project:
-
Python 3.11.x (64-bit)
Install lewat PowerShell:
winget install Python.Python.3.11Setelah selesai, tutup dan buka ulang PowerShell supaya PATH baru terbaca.
Alternatif manual: https://www.python.org/downloads/release/python-3119/
Saat install manual, centang
Add Python 3.11 to PATH.Verifikasi:
py -0pPastikan ada Python
3.11yang terdeteksi. -
Microsoft Visual C++ 2013 Redistributable (x64)
Download: https://aka.ms/highdpimfc2013x64enu
Komponen ini sering dibutuhkan oleh
pyzbaruntuk membacalibzbar-64.dll. -
Microsoft Visual C++ 2015-2022 Redistributable (x64)
Setelah install komponen di atas, restart laptop agar runtime DLL terbaca dengan benar.
-
Buka PowerShell di folder project, lalu buat virtual environment menggunakan Python 3.11:
py -3.11 -m venv .venv311
-
Aktifkan virtual environment:
.\.venv311\Scripts\Activate.ps1
Pastikan muncul
(.venv311)di awal prompt. Cek versi Python:python -VOutput harus menampilkan
Python 3.11.x. -
Install dependency:
pip install -r requirements.txt -
Smoke test untuk memastikan
pyzbarbisa di-load:python -c "from pyzbar.pyzbar import decode; print('pyzbar OK')"
Kalau muncul
pyzbar OK, environment sudah siap. Kalau error, lihat bagian Troubleshooting.
Menampilkan nilai asli QR code atau barcode yang terbaca.
python QrBarTest.pyMenampilkan status Authorized atau Un-Authorized berdasarkan daftar kode valid di myDataFile.text.
python QrCodeProject.pyTekan q atau Esc untuk keluar dari window kamera.
- Edit daftar kode valid di
myDataFile.text. - Isi satu kode per baris, tanpa tanda kutip.
- Jika ada lebih dari satu kamera, ubah
cv2.VideoCapture(0)menjadicv2.VideoCapture(1)atau index kamera lain diQrBarTest.py/QrCodeProject.py. - Resolusi kamera dapat diubah pada bagian:
cap.set(3, 640) cap.set(4, 480)
Penyebab paling umum: VC++ runtime belum lengkap.
- Install VC++ 2013 (x64): https://aka.ms/highdpimfc2013x64enu
- Install VC++ 2015-2022 (x64): https://aka.ms/vs/17/release/vc_redist.x64.exe
- Restart laptop, lalu ulangi smoke test.
Error ini biasanya muncul saat menjalankan:
py -3.11 -m venv .venv311Artinya Python 3.11 belum terpasang atau belum terdeteksi oleh launcher Python.
- Install lewat PowerShell:
winget install Python.Python.3.11 - Tutup dan buka ulang PowerShell.
- Cek interpreter yang terdeteksi:
py -0p
Virtual environment belum aktif atau dependency belum di-install.
.\.venv311\Scripts\Activate.ps1
pip install -r requirements.txtJika muncul pesan running scripts is disabled on this system, buka PowerShell dengan Run as Administrator, lalu jalankan:
Set-ExecutionPolicy RemoteSignedPilih Y, lalu aktifkan ulang virtual environment.
- Tutup aplikasi lain yang sedang memakai webcam, seperti Zoom, OBS, browser, atau aplikasi meeting.
- Coba ubah index kamera dari
0menjadi1dicv2.VideoCapture(0).
- Pastikan teks di
myDataFile.textpersis sama dengan hasil scan. - Jangan tambahkan tanda kutip.
- Jangan tambahkan spasi di awal atau akhir kode.
- Jalankan
python QrBarTest.pyuntuk melihat nilai asli yang terbaca, lalu masukkan nilai tersebut kemyDataFile.text.
QrBarTest.py: versi deteksi standar yang menampilkan nilai kode asli.QrCodeProject.py: versi validasi authorization yang menampilkanAuthorizedatauUn-Authorized.- Untuk demo, siapkan dua QR/barcode:
- satu berisi nilai yang sudah ada di
myDataFile.text, hasilnya hijauAuthorized - satu berisi nilai acak atau tidak terdaftar, hasilnya merah
Un-Authorized
- satu berisi nilai yang sudah ada di