【问题标题】:Can't resolve an Import in JavaCV无法解析 JavaCV 中的导入
【发布时间】:2017-09-19 15:21:19
【问题描述】:

我一直在尝试使用 OpenCV/JavaCV 制作计算机视觉项目,我想使用 imread 将图像存储到 Mat 变量中。

这就是我正在做的事情:Mat img=imread("C:/Reference/to/Pic.jpg");

没有编译,因为没有解析导入,特别是这个。

import static org.bytedeco.javacpp.opencv_imgcodecs.imread; 它告诉我“无法解析导入 org.bytedeco”。

我的所有其他导入似乎都按预期工作。这里有什么问题?这不是imread 的导入吗? OpenCV/JavaCV的安装有问题吗?

【问题讨论】:

  • 您使用的是什么 IDE?您是否将您的库包含在项目中?
  • @Emad,我正在使用 Eclipse,我想我已经包含了所有库,所有其他 OpenCV 特定功能都可以正常工作,只是拒绝合作。 “org.bytedeco”是否必须包含某个 jar?

标签: java opencv import javacv


【解决方案1】:

OpenCV/JavaCV 似乎有一些依赖项没有添加到您的项目中。 org.bytedeco.javacpp.opencv_imgcodecs.imread 位于 javacpp-preset 存储库中,即https://github.com/bytedeco/javacpp-presets 中的 github 存储库。

首先,我建议仔细阅读 README.md for javaCV 存储库,了解如何将 javaCV 导入您的项目。这在 JavaCV README.md 中有明确的解释:

手动安装

只需将所有需要的JAR文件(opencv*.jar、ffmpeg*.jar等), 除了 javacpp.jar 和 javacv.jar,在你班级的某个地方 小路。以下是针对常见情况的一些更具体的说明:

【讨论】:

  • 我的类路径中有这些 JAR 文件。
【解决方案2】:

如果您想读取图像并将其存储到 Mat 变量中,您可以简单地使用 Highgui.imread()。当 Opencv 为您提供所需的一切时,我不明白您为什么要使用 JavaCv。

【讨论】:

  • Highgui 模块已停产,不是吗?在当前版本中,它是Imgcodecs.imread()。当事情没有按应有的方式工作时,这令人沮丧。
  • 是的,我正在使用 opencv 2.4.13,所以它对我来说是 Highgui.imread()。但是从 Opencv 3.0 版本开始,它变成了 Imgcodecs。
【解决方案3】:

我知道为时已晚。 我发现这很有用。事实上 Javacv 和 org.byteco 依赖版本不兼容。所以,在 maven 存储库中,如果你想使用 Javacv 依赖 您可以找到下面列出的 org.bytedeco.op 的兼容依赖项 编译依赖(x) 希望对你有帮助

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 2013-10-04
  • 1970-01-01
  • 2016-03-12
  • 2018-08-07
相关资源
最近更新 更多