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

Groovy 예제

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

1. 엔진 파일 복사

[참고] 이 예제에서는 다른 예제들과 공유하기 위해 엔진 파일을 examples/bin/ 디렉토리에 압축 해제합니다. 하지만 실제 배포 시에는 일반적으로 애플리케이션의 실행 파일이 위치한 디렉토리에 엔진 파일을 복사합니다.

2. 사전 요구사항

  1. Java JDK 8 이상 설치

    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:

    • https://adoptium.net/ 또는 https://www.oracle.com/java/technologies/downloads/ 에서 JDK 다운로드 및 설치
  2. Groovy 설치

    Ubuntu/Debian:

    sudo apt-get install -y groovy
    

    CentOS/RHEL/Fedora:

    sudo dnf install groovy
    

    macOS:

    brew install groovy
    

    Windows:

    • https://groovy.apache.org/download.html 에서 다운로드
    • 또는 SDKMAN 사용: sdk install groovy
  3. 설치 확인

    java -version
    groovy --version
    

3. 실행 방법

cd examples/Groovy/anpr

# ANPR 예제 실행
groovy anpr.groovy

4. 기능

5. API 참조

TSANPR 모듈

TSANPR 클래스는 다음 메소드를 제공합니다:

// TSANPR 라이브러리 로드
def tsanpr = new TSANPR(libraryPath)

// ANPR 엔진 초기화
String error = tsanpr.initialize(mode)

// 이미지 파일 읽기 및 처리
String result = tsanpr.readFile(imgFileName, outputFormat, options)

// 픽셀 데이터 직접 처리
String result = tsanpr.readPixels(pixels, width, height, stride, pixelFormat, outputFormat, options)

인식 옵션

옵션 설명
"" 단일 번호판 인식 (기본값)
"vm" 차량에 부착된 여러 번호판 인식
"vmb" 여러 번호판 인식 (오토바이 포함)
"vms" 서라운드 감지와 함께 인식
"dms" 여러 주변 객체 (차량) 감지
"dmsr" 객체 감지 및 번호판 인식
"dmsri<좌표>" 관심 영역 내 인식

출력 형식

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

6. 구현 참고 사항

이 예제는 동적 라이브러리 로딩을 위해 JNA (Java Native Access)를 사용합니다:

동적 라이브러리 로딩:

Groovy 기능:

픽셀 버퍼 처리: readPixelBuffer 함수는 이미지를 로드하고 디코딩하기 위해 Java의 BufferedImage를 사용합니다. 원시 픽셀 데이터를 추출하여 JNA의 Memory 클래스를 사용하여 적절한 픽셀 형식으로 anpr_read_pixels()에 전달합니다.

7. 문제 해결

Groovy를 찾을 수 없음:

# Groovy 설치 확인
groovy --version

# Ubuntu/Debian: Groovy 설치
sudo apt-get install groovy

# 또는 SDKMAN 사용
curl -s "https://get.sdkman.io" | bash
sdk install groovy

JNA 의존성 문제:

# Grape가 JNA를 자동으로 다운로드해야 함
# 문제가 지속되면 네트워크 연결 또는 프록시 설정 확인

# Grape 캐시 지우고 재시도
rm -rf ~/.groovy/grapes/net.java.dev.jna
groovy anpr.groovy

라이브러리 로딩 문제:

런타임 문제: