C++ opencv 3.0中缺少contrib模块?
我正在使用OpenCV 3.0测试版 我尝试使用createLBPHFaceRecognizer创建一个人脸识别器;类别为C++ opencv 3.0中缺少contrib模块?,c++,opencv,image-processing,opencv3.0,opencv-contrib,C++,Opencv,Image Processing,Opencv3.0,Opencv Contrib,我正在使用OpenCV 3.0测试版 我尝试使用createLBPHFaceRecognizer创建一个人脸识别器;类别为 **Ptr <FaceRecognizer> model = createLBPHFaceRecognizer();** 我研究发现,该类存在于opencv2的contrib模块中 OpenCV早期版本中的opencv2/contrib/contrib.hpp 但是这个模块在opencv 3.0测试版中不可用。 那么opencv 3.0中定义的识别器类
**Ptr <FaceRecognizer> model = createLBPHFaceRecognizer();**
我研究发现,该类存在于opencv2的contrib模块中
OpenCV早期版本中的opencv2/contrib/contrib.hpp
但是这个模块在opencv 3.0测试版中不可用。
那么opencv 3.0中定义的识别器类在哪里呢
如果未定义这些模块,我们如何在现有模块的基础上添加此模块 您必须下载并构建回购协议 运行cmake、make、make安装后
#include <opencv2/face.hpp>
// note the additional namespace:
cv::Ptr <cv::face::FaceRecognizer> model = cv::face::createLBPHFaceRecognizer();
// proceed as usual
发件人:
启动cmakegui
选择opencv源代码文件夹和存放二进制文件的文件夹
将构建接口的两个上部形式
按配置按钮。您将看到所有opencv构建
中央接口中的参数
浏览参数并查找名为
OPENCV_额外_模块_路径使用搜索表单快速关注
信息技术
使用正确的路径名完成此OPENCV_额外_模块_路径,以
/modules值使用其浏览按钮。
按配置按钮,然后按生成按钮
第一次,您将被询问使用哪种makefile样式
使用您选择的make和make方法构建opencv核心
如果在步骤6中选择Unix makfile,请安装
要运行,需要添加contrib模块的链接器标志,以便在代码/IDE中使用它们。例如,要使用aruco模块,将添加-lopencv_aruco标志。在我的Debian安装中
$ dpkg -l libopencv-contrib-dev
ii libopencv-contrib-dev:amd64 3.2.0+dfsg-6 amd64 development files for libopencv-contrib3.2
使我能够使用仅包含一个附加模块的已贡献模块。例如:
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
auto model = cv::face::createLBPHFaceRecognizer();
感谢您的回复。我尝试使用cmake gui构建opencv_contrib,但在存储库中找不到任何cmake列表。cmake列表位于存储库中的各个模块中。但构建单个模块会带来错误。如何解决此问题?您将opencv_contrib模块添加到您的cmake中,在主opencv目录-DOPENCV_EXTRA_MODULES_PATH=/MODULES中创建,并重新构建主opencv repo,而不是单独创建。谢谢..如何在cmake GUI DOPENCV_EXTRA_MODULES_PATH中添加此路径。?单击“分组”,->opencv->opencv_EXTRA_MODULES_pathr只需搜索opencv_EXTRA_MODULES_路径,CMke gui就会为您找到它:
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
auto model = cv::face::createLBPHFaceRecognizer();