2017-01-16 3 views
0

오류 메시지 : 'openalpr-net, 버전 = 2.3.0.0, Culture = neutral, PublicKeyToken = null'또는 해당 종속성 중 하나를로드 할 수 없습니다. 잘못된 형식의 프로그램을로드하려고했습니다.열기 Alpr이 종속성을로드 할 수 없습니다.

그러나 alpr.exe를 실행하면 명령 줄에 아무런 문제가 없습니다. 내 프로젝트 폴더 아래 openalpr_64 : 나는 폴더가

using ...... 
using openalprnet; 
using System.Drawing; 

public static List<AlprPlateResultNet> RecognizePlate(string imagePath) 
     { 
      var alpr = new AlprNet("en", "/openalpr_64/openalpr.conf", "/openalpr_64/runtime_data"); 

      if (!alpr.IsLoaded()) 
      { 
       throw new Exception("OpenAlpr failed to load!"); 
      } 

      alpr.DefaultRegion = "md"; 

      var results = alpr.Recognize(imagePath); 
      return results?.Plates; 
     } 

     public static void Output(string imagePath) 
     { 
      var plates = RecognizePlate(imagePath); 
      var i = 0; 
      foreach (var result in plates) 
      { 
       Console.WriteLine("Plate {0}:{1} result(s)", i++, result.TopNPlates.Count); 
       Console.WriteLine(" Processing Time: {0} msec(s)", result.ProcessingTimeMs); 

       foreach (var plate in result.TopNPlates) 
       { 
        Console.WriteLine(" - {0}\t Confidence: {1}\tMatches Template: {2}", 
         plate.Characters, plate.OverallConfidence, plate.MatchesTemplate); 
       } 
      } 
     } 

:

private void CallAlpr() 
    { 
     var openFileDialog = new OpenFileDialog(); 

     if (openFileDialog.ShowDialog() == true) 
     { 
      OpenAlpr.Output(openFileDialog.FileName); 
     } 

     Console.Read(); 
    } 

OpenAlpr 클래스 :

여기 내 코드입니다.

답변

0

zip 파일의 모든 파일과 폴더를 Debug 폴더로 복사하여이 문제를 해결했으며 .config 및 runtime_data가 올바른 경로를 가리키고 있는지 확인했습니다.

1

필자의 경험으로 볼 때, 32Bit 또는 64Bit가 아닌 C# DLL/.EXE를 사용하려고 시도했을 때만이 특정 메시지를 보았습니다.

프로젝트 빌드가 'Any CPU'(64 비트 OS에서는 기본적으로 64 비트)로 설정되어 있지 않은지 확인하십시오.

최소한, .EXE 및 라이브러리 .DLL의 32/64 비트 수를 검사하십시오.

행운을 빈다.

+0

감사합니다. 몬차, 알아 냈습니다. – Franva

+1

반가워요! 재미있게 보내십시오. C++ ini 파일 부분을 많이 변경하기 위해 준비하십시오. 기본값은 메모리 사용을 무제한으로 만들 수 있습니다.) – Monza

+0

C++을 사용하지 않고 압축이 풀린 폴더 아래에 ini 파일이 없습니다. 하지만 상기시켜 주셔서 감사합니다 :) – Franva