yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
AI Vision USB Camera📖
01.Basic course
  • 1.Camera parameters
  • 2.Camera detect
  • 3.Camera preview screen
02.Docker
  • 1.Docker overview and docker installation
  • 2.Common commands for docker image containers
  • 3.Docker images deeply understand and publish images
  • 4.Docker hardware interaction and data processing
  • 5.Enter the bot's docker container
  • 6.Robot development environment construction in Docker
  • 7.How customers can update docker images in the future
03.ROS vision course
  • 0.Camera preview screen
  • 1.QR code
  • 2.Human pose estimation
  • 3.Target Detection
  • 4.AR vision
  • 5.ROS+Opencv basics
  • 6.Face recognition
  • 7.harris corner detection
  • 8.Target tracking algorithm
  • 9.Contour moment
  • 10.Polygon outline
  • 11.Discrete fourier transform algorithm
  • 12.Edge detection algorithm
  • 13.Face detection algorithm
  • 14.Optical flow detection algorithm
  • 15.Contour detection
  • 16.General contour detection
  • 17.Feature point tracking
  • 18.HLS color filtering
  • 19.Hough circle detection
  • 20.Hough linear detection
  • 21.HSV color filtering
  • 22.LK optical flow algorithm
  • 23.Detection algorithm
  • 24.Phase dependent displacement detection
  • 25.Image pyramid sampling algorithm
  • 26.RGB color filtering
  • 27.Clear background detection algorithm
  • 28.Simplified optical flow algorithm
  • 29.Simple filter
  • 30.Threshold image processing
  • 31.Watershed segmentation algorithm
04.Mediapipe course
  • 1.Hand detection
  • 2.Attitude detection
  • 3.Overall inspection
  • 4.Face detection
  • 5.Face recognition
  • 6.Face effects
  • 7.3D object recognition
  • 8.Brush
  • 9.Finger control
  • 10.Gesture recognition
05.Robot Vision course
  • Tracking color line
06.Camera preview and frame rate test
  • Camera preview and frame rate test
Download
  • Docker Image
  • PC_Software
Download ZIP

Welcome to AI Vision USB Camera repository

1.QR code

QR code

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 the QR code can allow its content to be decoded quickly. QR code not only has large information capacity, high reliability and low cost, but can also represent various text information such as Chinese characters and images. It has strong confidentiality and anti-counterfeiting and is very convenient to use. What's more important is that the QR code technology is open source.

2. QR code structure

PictureAnalyze
imgPositioning markings : Indicate the direction of the QR code.
imgAlignment markings :If the QR code is large, these additional elements help with positioning.
imgTiming pattern:Through these lines, the scanner can identify how large the matrix is.
imgVersion information:Here specifies the version number of the QR code being used. Currently there are 40 different version numbers of QR codes. Version numbers used in the sales industry are usually 1-7.
imgFormat information:Format patterns contain information about fault tolerance and data masking patterns and make scanning code easier.
imgData and error correction keys:These modes save actual data.
imgQuiet zone: This area is very important for the scanner. Its function is to separate itself from the surroundings.

2.1、Features of QR code

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

2.2、QR code creation and recognition

Source code path:~/yahboomcar_ws/src/yahboomcar_visual/simple_qrcode

Install

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

Create qrcode object

xxxxxxxxxx
   '''
    Parameter meaning:
    version:an integer with a value from 1 to 40, controlling the size of the QR code (the minimum value is 1, which is a 12×12 matrix).
            If you want the program to determine this automatically, set the value to None and use the fit argument.
    error_correction:Controls the error correction function of the QR code. Possible values are the following 4 constants.
    ERROR_CORRECT_L:About 7% or less of the errors can be corrected.
    ERROR_CORRECT_M(default):About 15% or less of errors can be corrected.
    ROR_CORRECT_H:About 30% or less of errors can be corrected.
    box_size:Controls the number of pixels contained in each small grid in the QR code.
    border:Control the number of cells included in the border (the distance between the QR code and the image border) (the default is 4, which is the minimum value specified by 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, you need to add Chinese characters**

xxxxxxxxxx
cd ~/yahboomcar_ws/src/yahboomcar_visual/simple_qrcode
python3 QRcode_Create.py

image-20240306202051506

  • Recognize
xxxxxxxxxx
def decodeDisplay(image, font_path):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    # It is necessary to convert the output Chinese characters into Unicode encoding form 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 types on the image
        pilimg = Image.fromarray(image)
        # Create 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
python3 QRcode_Parsing.py

image-20240306201700980

Camera preview screen
Human pose estimation

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

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文