我正在尝试在我的Windows 7机器上构建OpenCV。为了包含contrib模块,我已经在CMake-gui中添加了OPENCV_EXTRA_MODULES_PATH。已经创建了opencv-300.jar和opencv-300.dll,但是我找不到用于使用额外模块的Java类。我是否错过了制作配置中的选项?是否可以从Java中使用这些额外模块?
我正在尝试在我的Windows 7机器上构建OpenCV。为了包含contrib模块,我已经在CMake-gui中添加了OPENCV_EXTRA_MODULES_PATH。已经创建了opencv-300.jar和opencv-300.dll,但是我找不到用于使用额外模块的Java类。我是否错过了制作配置中的选项?是否可以从Java中使用这些额外模块?
我有同样的问题,我是这样解决的。我想你从contrib repo下载了与要构建的opencv版本相匹配的特定版本。所以进入目录并进入face模块目录;在这个目录中有一个名为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
ocv_define_module(face opencv_core opencv_imgproc opencv_objdetect WRAP python java)
接下来,您需要根据贡献存储库的Readme.md编译opencv. https://github.com/itseez/opencv_contrib
显然,如果您想要将所有贡献模块添加到您的opencv-3xx.jar库中,则同样适用。
希望这个解决方案对您有用,再见!
cd opencv_contrib/modules
命令切换到 opencv_contrib/modules
目录然后运行 grep -iR "WRAP python"
查找所有需要替换成 WRAP python java
的 WRAP python
。如果打印出来的结果都是你想要替换的,那么你就可以运行 find . -name CMakeLists.txt -type f -print0 | xargs -0 sed -i 's/WRAP python/WRAP python java/g'
命令进行替换了。 - patryk.beza返回类型“Ptr_Dictionary”不受支持,跳过该函数
。你有什么想法可以在模块端进行哪些更改来添加对Java包装器的支持吗? - Marek Smigielski