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

Ví dụ Groovy

https://github.com/bobhyun/TS-ANPR/tree/main/examples/Groovy/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, đối với triển khai thực tế, tệp engine thường được sao chép vào thư mục nơi tệp thực thi của ứng dụng được đặt.

2. Yêu cầu tiên quyết

  1. Cài đặt Java JDK 8 trở lên

    Ubuntu/Debian:

    sudo apt-get update
    sudo apt-get install -y openjdk-11-jdk
    

    CentOS/RHEL/Fedora:

    sudo dnf install java-11-openjdk-devel
    

    macOS:

    brew install openjdk@11
    

    Windows:

    • Tải và cài đặt JDK từ https://adoptium.net/ hoặc https://www.oracle.com/java/technologies/downloads/
  2. Cài đặt Groovy

    Ubuntu/Debian:

    sudo apt-get install -y groovy
    

    CentOS/RHEL/Fedora:

    sudo dnf install groovy
    

    macOS:

    brew install groovy
    

    Windows:

    • Tải từ https://groovy.apache.org/download.html
    • Hoặc sử dụng SDKMAN: sdk install groovy
  3. Xác minh cài đặt

    java -version
    groovy --version
    

3. Cách chạy

cd examples/Groovy/anpr

# Chạy ví dụ ANPR
groovy anpr.groovy

4. Tính năng

5. Tham khảo API

Module TSANPR

Lớp TSANPR cung cấp các phương thức sau:

// Tải thư viện TSANPR
def tsanpr = new TSANPR(libraryPath)

// Khởi tạo engine ANPR
String error = tsanpr.initialize(mode)

// Đọc và xử lý tệp hình ảnh
String result = tsanpr.readFile(imgFileName, outputFormat, options)

// Xử lý dữ liệu pixel trực tiếp
String result = tsanpr.readPixels(pixels, width, height, stride, pixelFormat, outputFormat, options)

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<tọa độ>" 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 JNA (Java Native Access) để tải thư viện động:

Tải thư viện động:

Tính năng Groovy:

Xử lý bộ đệm pixel: Hàm readPixelBuffer sử dụng BufferedImage của Java để tải và giải mã hình ảnh. Nó trích xuất dữ liệu pixel thô và truyền cho anpr_read_pixels() với định dạng pixel thích hợp sử dụng lớp Memory của JNA.

7. Khắc phục sự cố

Không tìm thấy Groovy:

# Kiểm tra cài đặt Groovy
groovy --version

# Ubuntu/Debian: Cài đặt Groovy
sudo apt-get install groovy

# Hoặc sử dụng SDKMAN
curl -s "https://get.sdkman.io" | bash
sdk install groovy

Vấn đề phụ thuộc JNA:

# Grape sẽ tự động tải JNA
# Nếu vấn đề vẫn tiếp tục, kiểm tra kết nối mạng hoặc cài đặt proxy

# Xóa cache Grape và thử lại
rm -rf ~/.groovy/grapes/net.java.dev.jna
groovy anpr.groovy

Vấn đề tải thư viện:

Vấn đề thời gian chạy: