【问题标题】:Build OpenCV with contrib modules and Java wrapper使用 contrib 模块和 Java 包装器构建 OpenCV
【发布时间】:2015-10-21 00:18:03
【问题描述】:

我正在尝试在我的 Windows 7 机器上构建 OpenCV。为了包含贡献模块,我在 CMake-gui 中添加了 OPENCV_EXTRA_MODULES_PATH。 opencv-300.jar 和 opencv-300.dll 已创建,但我找不到使用额外模块的 Java 类。我在 make 配置中缺少一个选项吗?是否可以从 Java 中使用这些额外的模块?

【问题讨论】:

  • 嗨!我成功地用额外的模块构建了 OpenCV 并为 Java 创建了 Jar 文件,我测试它运行良好,但我在这个 Jar 文件中没有看到任何新东西,我的意思是 Java 的贡献代码,这个 Jar文件与 OpenCV 下载文件中的 Jar 文件几乎相同。如果您理解我的问题,请告诉我我在构建 Jar 文件的某些地方做错了或者是这样的?非常感谢。注意:我在构建 Jar 文件时包含了所有内容

标签: java opencv build


【解决方案1】:

我有同样的问题,我以这种方式解决了。我想如果你想构建,你已经从 contrib repo 下载了与 opencv 版本匹配的特定版本。所以进入目录并进入,例如人脸模块目录;在此目录中有一个名为 CMakeLists.txt 的文件,您必须对其进行编辑。这个文件应该是这样的:

set(the_description "Face recognition etc")
ocv_define_module(face opencv_core opencv_imgproc opencv_objdetect WRAP python)
# NOTE: objdetect module is needed for one of the samples

如果你想在你的 opencv-3xx.jar 库中包含 org.opencv.face 包,你必须以这种方式修改文件的第 2 行:

ocv_define_module(face opencv_core opencv_imgproc opencv_objdetect WRAP python java)

然后您必须按照 contrib repo https://github.com/itseez/opencv_contrib 的 Readme.md 中所述编译 opencv

如果你想添加到你的 opencv-3xx.jar 库,同样的事情对于所有的 contrib 模块都是有效的。

我希望这个解决方案对你有用,再见!

【讨论】:

  • 哇!感谢您的回答。你真的为我节省了很多时间!如果您想稍微自动化一些事情,您可以使用cd opencv_contrib/modulesgrep -iR "WRAP python" 将目录更改为opencv_contrib/modules。如果它打印出所有你想用WRAP python java 替换的WRAP python,那么你可以运行find . -name CMakeLists.txt -type f -print0 | xargs -0 sed -i 's/WRAP python/WRAP python java/g'
  • 我想在模块 xfeatures2d 中使用 surf。我尝试了您的解决方案,但在制作时出错:opencv/build/src/org/opencv/xfeatures2d/DAISY.java:48: Error: sysmbol not found。有什么问题?
  • 您好,我遇到了一个问题,指向某些内部对象的指针不受支持。 Return type 'Ptr_Dictionary' is not supported, skipping the function。您知道模块方面需要更改哪些内容以添加对 java wrapper 的支持吗?
  • @sify 尝试在所有 xfeaures2d 文件中导入 org.opencv.features2d.*。这解决了我的错误。
猜你喜欢
  • 2018-04-17
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2018-07-11
  • 2021-03-17
  • 2016-01-31
  • 2015-09-24
相关资源
最近更新 更多