- דרישות
- התקנת OpenCV ב- Raspberry Pi
- התקנת חבילות נדרשות אחרות
- Raspberry pi QR Code Reader הגדרת חומרה
- קוד פייתון עבור קורא קוד ה- Raspberry Pi QR
- בדיקת סורק קוד ה- Raspberry Pi QR
קוד QR (קוד תגובה מהיר) הוא סוג של ברקוד מטריקס המכיל מידע אודות הפריט אליו הוא מצורף, כמו נתוני מיקום, מזהה או גשש המזהה אתר או אפליקציה וכו '. זהו אופטי קריא למכונה תווית בצורת תמונה דו ממדית ובעלת דפוס שונה. למידע נוסף על קודי QR וכיצד ליצור קוד QR, עקוב אחר ההדרכה הקודמת שלנו.
במדריך זה אנו הולכים לבנות סורק קוד קוד מבוסס Raspberry Pi באמצעות ספריית OpenCV ו- ZBar. ZBar היא הספרייה הטובה ביותר לאיתור ופענוח סוגים שונים של ברקודים וקודי QR. OpenCV משמש לתפוס מסגרת חדשה מזרם וידאו ולעבד אותה. ברגע ש- OpenCV לוכד מסגרת, נוכל להעביר אותה לספריית פענוח ברקודים ייעודית של פייתון, כמו ZBar שמפענח את קוד הברק וממיר אותו למידע בהתאמה.
דרישות
- פטל פי 3 (כל גרסה)
- מודול מצלמת פי
לפני שתמשיך בסורק קוד QR זה של Raspberry Pi 3, ראשית, עלינו להתקין בפרויקט זה OpenCV, ספריית פענוח ברקודים ZBar, imutils וכמה תלות אחרות. OpenCV משמש כאן לעיבוד תמונה דיגיטלית. היישומים הנפוצים ביותר של עיבוד תמונה דיגיטלי הם זיהוי אובייקטים, זיהוי פנים ומונה אנשים.
התקנת OpenCV ב- Raspberry Pi
כאן תשמש ספריית OpenCV לסורק QR Raspberry Pi. כדי להתקין את OpenCV, עדכן תחילה את ה- Raspberry Pi.
עדכון sudo apt-get
לאחר מכן התקן את התלות הנדרשת להתקנת OpenCV ב- Raspberry Pi שלך.
sudo apt-get install libhdf5-dev -y sudo apt-get install libhdf5-serial-dev –y sudo apt-get install libatlas-base-dev –y sudo apt-get install libjasper-dev -y sudo apt-get install libqtgui4 –Y sudo apt-get install libqt4-test –y
לאחר מכן, התקן את OpenCV ב- Raspberry Pi באמצעות הפקודה שלהלן.
pip3 להתקין opencv-contrib-python == 4.1.0.25
בעבר השתמשנו ב- OpenCV עם Raspberry pi ויצרנו עליו הרבה מדריכים.
- התקנת OpenCV ב- Raspberry Pi באמצעות CMake
- זיהוי פנים בזמן אמת עם Raspberry Pi ו- OpenCV
- זיהוי לוחית רישוי באמצעות Raspberry Pi ו- OpenCV
- הערכת גודל ההמון באמצעות OpenCV ו- Raspberry Pi
יצרנו גם סדרה של מדריכי OpenCV החל מרמת המתחילים.
התקנת חבילות נדרשות אחרות
התקנת ZBar
Zbar היא הספרייה הטובה ביותר לאיתור ופענוח של סוגים שונים של ברקודים וקודי QR. השתמש בפקודה הבאה כדי להתקין את הספרייה:
pip3 להתקין את pyzbar
התקנת imutils
imutils משמש כדי להקל על פונקציות עיבוד תמונה חיוניות כגון תרגום, סיבוב, שינוי גודל, השלד והצגת תמונות Matplotlib קלות יותר באמצעות OpenCV. השתמש בפקודה הבאה כדי להתקין את הדמויות:
pip3 להתקין imutils
מתקין ארגפרס
השתמש בפקודה הבאה כדי להתקין את הספרייה argparse. argparse אחראי לניתוח טיעונים בשורת הפקודה.
pip3 להתקין argparse
Raspberry pi QR Code Reader הגדרת חומרה
כאן אנו דורשים רק מצלמת פטל ופי עבור סורק קוד QR זה באמצעות מצלמת פטל, ואתה רק צריך לחבר את מחבר סרט המצלמה בחריץ המצלמה הנתון בפי פטל.
ניתן להשתמש במצלמת Pi לבניית פרויקטים מעניינים שונים כמו Raspberry Pi Surveillance Camera, מערכת ניטור מבקרים, מערכת אבטחה ביתית וכו '.
קוד פייתון עבור קורא קוד ה- Raspberry Pi QR
הקוד המלא לקורא QR של Raspberry Pi ניתן בסוף העמוד. לפני שנתכנת את ה- Raspberry Pi, בואו נבין את הקוד.
אז כרגיל התחל את הקוד על ידי ייבוא כל החבילות הנדרשות.
מ imutils.video ייבוא VideoStream מ pyzbar ייבוא pyzbar ייבוא argparse ייבוא תאריך זמן ייבוא imutils ייבוא זמן ייבוא cv2
ואז בנה את מנתח הטיעון ונתח את הטיעונים. הארגומנט של שורת הפקודה מכיל מידע על הנתיב של קובץ ה- CSV. קובץ ה- CSV (ערכים מופרדים באמצעות פסיקים) מכיל את חותמת הזמן והמטען של כל ברקוד מזרם הווידיאו שלנו.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "path to output CSV file contain barcodes") args = vars (ap.parse_args ())
לאחר מכן, אתחל את זרם הווידאו ובטל את ההערה על השורה שהגיבה אם אתה משתמש במצלמת אינטרנט USB.
#vs = VideoStream (src = 0).start () לעומת = VideoStream (usePiCamera = True).start () time.sleep (2.0)
עכשיו בתוך הלולאה, קח מסגרת מזרם הווידאו ושנה את הגודל ל -400 פיקסלים. ברגע שהוא תופס את המסגרת, התקשר לפונקציה pyzbar.decode כדי לאתר ולפענח את קוד ה- QR.
frame = vs.read () frame = imutils.resize (frame, width = 400) barcodes = pyzbar.decode (frame)
כעת דלג על הברקודים שזוהו כדי לחלץ את מיקום הברקוד וצייר את תיבת התוחם סביב הברקוד בתמונה.
עבור ברקוד בברקודים: (x, y, w, h) = barcode.rect cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 0, 255), 2)
ואז פענח את הברקוד שזוהה למחרוזת "utf-8" באמצעות הפונקציה ("utf-8") ואז חילץ את סוג הברקוד באמצעות פונקציית barcode.type.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
לאחר מכן, שמור את נתוני הברקוד שחולצו וסוג הברקוד בתוך משתנה בשם טקסט, וצייר את נתוני הברקוד והקלד על התמונה.
טקסט = "{} ({})". פורמט (ברקוד נתונים, ברקוד סוג) cv2.putText (מסגרת, טקסט, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
כעת הציגו את הפלט עם נתוני הברקוד וסוג הברקוד.
cv2.imshow ("קורא ברקודים", מסגרת)
כעת, בשלב האחרון, בדוק אם מקש זה נלחץ, ואז פרוץ את הלולאה הראשית והתחל בתהליך הניקוי.
מקש = cv2.waitKey (1) & 0xFF # אם לוחצים על מקש `s`, הפרו מהלולאה אם מקש == ord (" s "): הפסקה של הדפסה (" ניקוי… ") csv.close () cv2.destroyAllWindows () לעומת stop ()
בדיקת סורק קוד ה- Raspberry Pi QR
לאחר שההתקנה שלך מוכנה, הפעל את תוכנית קורא קוד ה- QR. תראה חלון שמציג תצוגה חיה מהמצלמה שלך, עכשיו אתה יכול להציג ברקודים מול מצלמת ה- PI. כאשר pi מפענח ברקוד, הוא יצייר סביבו תיבה אדומה עם נתוני ברקוד וסוג ברקוד כפי שמוצג בתמונה למטה:
כך תוכלו לבנות בקלות קורא קוד Raspberry Pi Camera Reader רק באמצעות לוח ה- Raspberry Pi ובמצלמת Pi או מצלמת USB.
סרטון עבודה וקוד מלא לפרויקט זה מובאים להלן.