【问题标题】:Emgu CV cannot create an image from given pathEmgu CV 无法从给定路径创建图像
【发布时间】:2017-03-25 20:36:28
【问题描述】:

当我从给定路径加载图像时:

Image<Bgr, byte> source = new Image<Bgr, byte>(absoluteImagePath);

绝对路径在哪里:

D:\Users\Oijafaosfasdf\Source\Workspaces\SomeProject\SomeProjectV3\SomeProject.UI\bin\Debug\636260785130864402.png

它抛出了奇怪的异常:

第一次:

在不终止程序的情况下尝试创建图像的所有其他时间:

--- 内部异常堆栈跟踪的开始 ---
“Emgu.CV.CvInvoke”的类型初始化程序引发异常。 ---> System.ArgumentException: 该路径不是合法的形式。在 System.IO.Path.NormalizePath(字符串路径,布尔全校验,Int32 maxPathLength,布尔值 expandShortPaths)在 System.IO.Path.GetFullPathInternal(字符串路径)在 System.IO.FileInfo.Init(字符串文件名,布尔检查主机)在 System.IO.FileInfo..ctor(字符串文件名)在 Emgu.CV.CvInvoke.LoadUnmanagedModules(字符串加载目录,字符串 [] 非托管模块)在 Emgu.CV.CvInvoke.DefaultLoadUnmanagedModules(String[] modules) 在 Emgu.CV.CvInvoke..cctor()
--- 内部异常堆栈跟踪结束 ---

这与此不重复 -> stackoverflow.com 问题,因为我提供了绝对路径。 我已经检查了文件格式是否有效并且文件存在于目录中.. 那么,会出现什么问题呢?

注意:我正在使用 Nuget 包管理器安装 Emgu CV (v3.1.0.1)。

【问题讨论】:

  • 你试过用更简单的路径吗?例如D:\test
  • @ThomasMoors 刚试过,还是一样。
  • 真可惜,双反斜杠呢?
  • 您是否尝试在没有 emgu 的情况下打开文件?喜欢new FileInfo(@"yourpath")var exist = File.Exists(@"yourpath")File.OpenRead(@"yourpath")。问题不在于 Emgu,而在于您的文件路径。有时你可以在字符串中有一个不可见的字符。
  • @Kalten 是的,我试过new FileInfo(@"mypath").Exists,一切似乎都很好。看起来可能有安装问题,因为这看起来很可疑。我记得当我使用 Nuget 包管理器使用 openCV 时,没有任何效果..

标签: c# emgucv


【解决方案1】:

试试这个:

Image<bgr, byte> source = new Image<bgr, byte>("D://Users//Oijafaosfasdf//Source//Workspaces//SomeProject//SomeProjectV3//SomeProject.UI//bin//Debug//636260785130864402.png");

或者尝试加载任何其他图像,如果它可以正常工作,则您尝试加载的图像可能有损坏的标题。

【讨论】:

  • 尝试使用uri路径和其他图像/格式,还是一样.. nuget安装有问题吗?
  • 您是否尝试过加载到 Bitmap 对象并将其传递给 Image 而不是绝对路径?
  • 使用给定路径成功创建位图,但在进入 Emgu CV 代码时仍然出现相同的错误。您是否有相同的错误,或者这仅适用于我?
  • 如果 Image&lt;bgr, byte&gt; source = new Image&lt;bgr, byte&gt;(YourBitmapObject); 仍然给你错误,你的 Emgu 安装可能已损坏。
  • 通过创建新的控制台应用程序并添加 Emgu CV 它可以工作。但是当我为我的其他项目(类库)做同样的事情时,它失败了。对于所有解决方案,我设置了 x64 架构。另一件事是它异步运行,虽然我使用的是静态方法和类..
【解决方案2】:

盯着同样的错误信息几个小时后,我意识到问题出在 dll 上,找不到它们。由于我已经安装了 Costura.Fody 包,它将所有 dll 合并到一个可执行文件中,这就是 Emgu CV 根本无法工作的原因.. em> 感谢所有帮助过的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-26
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多