Skip to the content.
English 한국어 日本語 Tiếng Việt

Ví dụ Pony

https://github.com/bobhyun/TS-ANPR/tree/main/examples/Pony/anpr

1. Sao chép các tệp Engine

[Lưu ý] Trong ví dụ này, tệp engine được giải nén vào thư mục examples/bin/ để chia sẻ với các ví dụ khác. Tuy nhiên, khi triển khai thực tế, tệp engine thường được sao chép vào thư mục chứa tệp thực thi của ứng dụng.

2. Yêu cầu trước

  1. Cài đặt trình biên dịch Pony

    Ubuntu/Debian:

    # Sử dụng ponyup (khuyến nghị)
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ponylang/ponyup/latest-release/ponyup-init.sh | sh
    source ~/.profile
    ponyup update ponyc release
    

    macOS:

    brew install ponyc
    

    Windows:

    # Sử dụng Chocolatey
    choco install ponyc
    
    # Hoặc tải từ https://github.com/ponylang/ponyc/releases
    
  2. Cài đặt trình biên dịch C (GCC hoặc Clang)

    Ubuntu/Debian:

    sudo apt-get install build-essential
    

    macOS:

    xcode-select --install
    

    Windows:

    • Cài đặt Visual Studio Build Tools hoặc MinGW-w64
  3. Xác minh cài đặt

    ponyc --version
    gcc --version
    

3. Cách chạy

cd examples/Pony/anpr

# Build và chạy
make run

# Chỉ build
make

# Build phiên bản release
make release

# Dọn dẹp tệp build
make clean

4. Tính năng

5. Tham khảo API

Lớp TSANPR

class TSANPR
  new create(library_path: String) ?
  fun ref initialize(mode: String): String
  fun ref read_file(img_file_name: String, output_format: String, options: String): String
  fun ref read_pixels(pixels: Array[U8] val, width: U64, height: U64, stride: I64,
                     pixel_format: String, output_format: String, options: String): String

Tùy chọn nhận dạng

Tùy chọn Mô tả
"" Nhận dạng biển số đơn (mặc định)
"vm" Nhận dạng nhiều biển số gắn trên xe
"vmb" Nhận dạng nhiều biển số (bao gồm xe máy)
"vms" Nhận dạng với phát hiện xung quanh
"dms" Phát hiện nhiều đối tượng xung quanh (xe)
"dmsr" Phát hiện đối tượng và nhận dạng biển số
"dmsri<coords>" Nhận dạng trong Vùng quan tâm

Định dạng đầu ra

"text", "json", "yaml", "xml", "csv"

6. Ghi chú triển khai

Ví dụ này sử dụng wrapper C để xử lý tải thư viện động và xử lý hình ảnh:

Tải thư viện động (tsanpr_wrapper.c):

Xử lý hình ảnh (image_loader.c):

Mã Pony gọi các hàm wrapper C thông qua FFI, các hàm này lần lượt gọi các hàm thư viện TSANPR được tải động.