Open Alpr 无法加载其依赖项
Open Alpr cannot load its dependency
错误信息:
无法加载文件或程序集 'openalpr-net, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。试图加载格式不正确的程序。
但是当我通过推荐行 运行 alpr.exe 时,它没有任何问题。
这是我的代码:
private void CallAlpr()
{
var openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == true)
{
OpenAlpr.Output(openFileDialog.FileName);
}
Console.Read();
}
OpenAlpr class:
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);
}
}
}
我的项目文件夹下有文件夹:openalpr_64。
根据我的经验,我只在尝试使用并非全是 32 位或 64 位的 C# DLL/.EXE 时看到该特定消息。
检查您的项目构建是否未设置为 'Any CPU'(在 64 位 os 上默认为 64 位)。
至少,检查 .EXE 和库 .DLL 的 32/64 位。
祝你好运!
我通过将所有文件和文件夹从 zip 文件复制到 Debug 文件夹并确保 .config 和 runtime_data 指向正确的路径解决了这个问题。
错误信息: 无法加载文件或程序集 'openalpr-net, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。试图加载格式不正确的程序。
但是当我通过推荐行 运行 alpr.exe 时,它没有任何问题。
这是我的代码:
private void CallAlpr()
{
var openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == true)
{
OpenAlpr.Output(openFileDialog.FileName);
}
Console.Read();
}
OpenAlpr class:
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);
}
}
}
我的项目文件夹下有文件夹:openalpr_64。
根据我的经验,我只在尝试使用并非全是 32 位或 64 位的 C# DLL/.EXE 时看到该特定消息。
检查您的项目构建是否未设置为 'Any CPU'(在 64 位 os 上默认为 64 位)。
至少,检查 .EXE 和库 .DLL 的 32/64 位。
祝你好运!
我通过将所有文件和文件夹从 zip 文件复制到 Debug 文件夹并确保 .config 和 runtime_data 指向正确的路径解决了这个问题。