所以我试图建立the demo program for text detection,而CMake正在抱怨" text.hpp"不存在。我查了一下,事实证明它只存在于the optional modules中。 如何使用这些模块重新编译OpenCV而不会破坏所有内容?
编辑:我正在使用Ubuntu,我从命令行使用CMake编译程序。
编辑2:我尝试运行sudo make uninstall
,克隆了repos(主要和模块),然后是following the instructions to build with those modules,但CMake仍然报告text.hpp不存在。
答案 0 :(得分:1)
以下说明介绍了如何从头开始构建OpenCV 3.4.0以及额外的模块。我们假设使用Visual Studio 2017 15.5和CMake 3.10.0-rc1。以下命令在Windows中的Git bash上执行。 <project_dir>
表示驻留克隆存储库的目录。
克隆存储库
$ cd <project_dir>
$ git clone git@github.com:opencv/opencv.git
$ cd opencv
$ git checkout tags/3.4.0
$ cd <project_dir>
$ git clone git@github.com:opencv/opencv_contrib.git
$ cd opencv_contrib
$ git checkout tags/3.4.0
使用额外模块配置OpenCV
$ cd <project_dir>/opencv
$ mkdir build && cd build
$ cmake \
-D OPENCV_EXTRA_MODULES_PATH="<project_dir>/opencv_contrib/modules" \
-G "Visual Studio 15 2017 Win64" ..
构建并安装库。构建的库和标头将安装在<project_dir>/opencv/build/install
。
$ cmake --build . --config Release --target INSTALL
您提到的示例似乎不是默认构建的。让我们构建它。首先创建新项目目录并复制必要的文件。
$ cd <project_dir>
$ mkdir opencv_text_samples && cd opencv_text_samples
$ cp <project_dir>/opencv_contrib/modules/text/samples/* .
创建一个CMakeLists.txt为
$ cat CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(opencv_text_samples)
find_package(OpenCV REQUIRED)
add_executable(textdetection textdetection.cpp)
target_link_libraries(textdetection ${OpenCV_LIBS})
构建项目。必须在OpenCV_DIR
中指定OpenCV的安装目录。
$ mkdir build && cd build
$ cmake \
-D OpenCV_DIR="<project_dir>/opencv/build/install" \
-G "Visual Studio 15 2017 Win64" ..
复制必要的dll和依赖项。完成!
$ cp <project_dir>/opencv/build/install/x64/vc15/bin/* .
$ cp <project_dir>/opencv_contrib/*.xml .
$ ./textdetection ../../scenetext_word01.jpg
答案 1 :(得分:0)
原来我将OPENCV_EXTRA_MODULES_PATH设置为"<project_dir>/opencv_contrib"
,忘记将/modules
放在最后......对不起大家