yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RPi AI Camera📖
01.Preparation before use
  • Preparation before use
02.Environment construction
  • Environment construction
03.rpicam-apps examples
  • rpicam-apps examples
04.PiCamera2 Examples
  • PiCamera2 Examples
05.Mediapipe Course
  • 1. Face effects
  • 2. Face Detection
  • 3. 3D Object Recognition
  • 4. Brush
  • 5. Finger control
  • 6. Gesture Recognition
06.Advanced AI Course
  • 1. Human Pose Estimation
  • 2. Object Detection
  • 3. yolov5
  • 4. QR code
  • 5. Face Detection
  • 6. Color recognition
Download
  • System_File
  • Code
  • Software Tools
Download ZIP

Welcome to RPi AI Camera repository

4. QR code

5. QR code

5. QR code5.1. Introduction to QR code5.2. Structure of QR code5.3. Characteristics of QR Code5.4. QR code creation and recognition

5.1. Introduction to QR code

QR code is a type of two-dimensional barcode. QR comes from the abbreviation of "Quick Response" in English, which means quick response. It comes from the inventor's hope that QR code can allow its content to be decoded quickly. QR code not only has large information capacity, high reliability and low cost, but also can represent a variety of text information such as Chinese characters and images. It has strong confidentiality and anti-counterfeiting properties and is very convenient to use. More importantly, the QR code technology is open source.

5.2. Structure of QR code

ImageAnalysis
imgPositioning markings indicate the direction of the QR code.
imgAlignment markings If the QR code is large, these additional elements help with positioning.
imgTiming patternThrough these lines, the scanner can tell how big the matrix is.
imgVersion informationThis specifies the version number of the QR code being used. There are currently 40 different versions of QR codes. Versions used in the sales industry are usually 1-7.
imgFormat informationThe format pattern contains information about error tolerance and data mask patterns and makes scanning the code easier.
imgData and error correction keysThese patterns hold the actual data.
imgQuiet zoneThis area is very important for the scanner, its function is to separate itself from the surroundings.

5.3. Characteristics of QR Code

The data value in QR code contains repeated information (redundant value). Therefore, even if up to 30% of the QR code structure is destroyed, it will not affect the readability of the QR code. The storage space of QR code is up to 7089 bits or 4296 characters, including punctuation and special characters, which can be written into the QR code. In addition to numbers and characters, words and phrases (such as URLs) can also be encoded. As more data is added to the QR code, the code size increases and the code structure becomes more complex.

5.4. QR code creation and recognition

Note: The AI camera in this case does not have a computing power bonus, when the ordinary camera is called!

Source code path: /home/pi/yahboomcar_ws/src/yahboomcar_visual/simple_qrcode

Installation

xxxxxxxxxx
python3 -m pip install qrcode pyzbar
sudo apt-get install libzbar-dev
  • Create

Create qrcode object

x
'''
Parameter meaning:
version: An integer between 1 and 40 that controls the size of the QR code (the minimum value is 1, which is a 12×12 matrix).
If you want the program to determine it automatically, set the value to None and use the fit parameter.
error_correction: Controls the error correction function of the QR code. The following 4 constants are possible.
ERROR_CORRECT_L: About 7% or less errors can be corrected.
ERROR_CORRECT_M (default): About 15% or less errors can be corrected.
ROR_CORRECT_H: About 30% or less errors can be corrected.
box_size: Controls the number of pixels contained in each small grid in the QR code.
border: controls the number of grids contained in the border (the distance between the QR code and the image border) (the default is 4, which is the minimum value specified by the relevant standards)
'''
qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=5, border=4,)

QRcode QR code to add logo

xxxxxxxxxx
# If the logo address exists, add the logo image
my_file = Path(logo_path)
if my_file.is_file(): img = add_logo(img, logo_path)

Note: When using Chinese, Chinese characters must be added

xxxxxxxxxx
cd /home/pi/yahboomcar_ws/src/yahboomcar_visual/simple_qrcode
python3 QRcode_Create.py

image-20241216094940846

  • Identification

​x
def decodeDisplay(image, font_path):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
# You need to convert the output Chinese characters into Unicode encoding format first
barcodes = pyzbar.decode(gray)
for barcode in barcodes:
# Extract the position of the bounding box of the QR code
(x, y, w, h) = barcode.rect
# Draw the bounding box of the barcode in the image
cv.rectangle(image, (x, y), (x + w, y + h), (225, 0, 0), 5)
encoding = 'UTF-8'
# To draw it, you need to convert it into a string first
barcodeData = barcode.data.decode(encoding)
barcodeType = barcode.type
# Draw the data and type on the image
pilimg = Image.fromarray(image)
# Create a brush
draw = ImageDraw.Draw(pilimg)
# Parameter 1: font file path, parameter 2: font size
fontStyle = ImageFont.truetype(font_path, size=12, encoding=encoding)
# Parameter 1: print coordinates, parameter 2: text, parameter 3: font color, parameter 4: font
draw.text((x, y - 25), str(barcode.data, encoding), fill=(255, 0, 0), font=fontStyle)
# PIL image to cv2 image
image = cv.cvtColor(np.array(pilimg), cv.COLOR_RGB2BGR)
# Print barcode data and barcode type to the terminal
print("[INFO] Found {} barcode: {}".format(barcodeType, barcodeData))
return image
  • Effect Demonstration

xxxxxxxxxx
cd /home/pi/yahboomcar_ws/src/yahboomcar_visual/simple_qrcode
python3 QRcode_Parsing_CSI.py

image-20241216095153321

 

yolov5
Face Detection

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文