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

Crystal 예제

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

1. 엔진 파일 복사

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

2. 사전 요구사항

  1. Crystal 설치 (버전 1.0.0 이상 권장)

    Windows:

    # Scoop 사용
    scoop install crystal
    
    # 또는 https://crystal-lang.org/install/on_windows/ 에서 다운로드
    

    Linux:

    # Ubuntu/Debian
    curl -fsSL https://crystal-lang.org/install.sh | sudo bash
    
    # 또는 패키지 매니저 사용
    sudo apt-get install crystal
    
  2. 설치 확인

    crystal --version
    

3. 실행 방법

  1. Crystal 예제 디렉토리로 이동

    cd Crystal/anpr
    
  2. 의존성 설치

    # 필수 shard 설치 (이미지 디코딩을 위한 StumpyPNG 및 StumpyJPEG)
    shards install
    

    Windows 참고사항: Shards는 심볼릭 링크가 필요합니다. 심볼릭 링크 오류가 발생하면 두 가지 옵션이 있습니다:

    • 옵션 1 (권장): Windows 설정에서 개발자 모드 활성화
      • 설정 → 개인 정보 및 보안 → 개발자용 → 개발자 모드 → 켜기
      • 참고: https://learn.microsoft.com/ko-kr/windows/apps/get-started/enable-your-device-for-development
    • 옵션 2: PowerShell 또는 명령 프롬프트를 관리자 권한으로 실행
      # 관리자 권한으로 실행
      shards install
      
  3. 예제 실행

    Shards 사용 (권장):

    # 빌드 및 실행
    shards build
    ./bin/anpr
    
    # 최적화와 함께 빌드
    shards build --release
    

    직접 컴파일:

    # 직접 실행
    crystal run anpr.cr
    
    # 또는 컴파일 후 실행
    crystal build anpr.cr
    ./anpr
    
    # 최적화와 함께 컴파일
    crystal build --release anpr.cr
    

4. 참고사항

5. 기능

6. 이미지 처리 방법

이 예제는 세 가지 다른 방법으로 이미지를 처리하는 것을 보여줍니다:

  1. read_image_file: anpr_read_file을 사용한 직접 파일 처리 (가장 빠른 방법)
  2. read_encoded_image: 픽셀 포맷 “encoded”로 인코딩된 이미지 바이트 전달
  3. read_pixel_buffer: StumpyPNG/StumpyJPEG를 사용하여 원시 RGB 픽셀 데이터로 디코딩한 후 anpr_read_pixels에 전달
    • PNG 파일: StumpyPNG를 사용하여 디코딩
    • JPEG 파일: StumpyJPEG를 사용하여 디코딩하며, 디코딩 실패 시 자동으로 인코딩된 형식으로 폴백

방법 전환을 위해 코드에서 anpr_func 변수를 수정하세요:

# 다음 중 하나를 선택:
anpr_func = ->read_image_file(TSANPR, String, String, String)
# anpr_func = ->read_encoded_image(TSANPR, String, String, String)
# anpr_func = ->read_pixel_buffer(TSANPR, String, String, String)

참고: read_pixel_buffer 함수는 JPEG 디코딩 실패를 자동으로 처리하여 인코딩된 형식으로 폴백함으로써 다양한 JPEG 변형에서 안정적인 작동을 보장합니다.

7. API 참조

TSANPR 클래스

TSANPR 클래스는 다음 메서드들을 제공합니다:

생성자:

핵심 메서드:

인식 옵션

출력 형식

7. 문제 해결

라이브러리 로딩 문제:

컴파일 문제:

플랫폼별 문제: