$ uname -a
Linux laptop 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux
我需要使用cv::face::createLBPHFaceRecognizer()
,它不是核心 OpenCV 的一部分,而是一个贡献模块。
$ dpkg -l libopencv-contrib-dev
ii libopencv-contrib-dev:amd64 3.2.0+dfsg-6 amd64 development files for libopencv-contrib3.2
一切都很好......不:
src/cmd.cpp:150: error: ‘cv::face’ has not been declared
const auto model = cv::face::createLBPHFaceRecognizer();
^~~~
好的。然后让我们手动包含所需的标题:
$ dpkg -S libopencv-contrib-dev
libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev
libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev/changelog.Debian.gz
libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev/copyright
libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev/README.Debian
没有什么!这是打包者的错误吗(毕竟这是 Debian测试)?OpenCV 的特性?我这边的一个小疏忽?我想继续使用包管理器,而不是自己编译整个东西。
软件包很好,您使用了错误的
dpkg
选项:将列出 中的所有文件
libopencv-contrib-dev
,这就是您所追求的(并将显示此处列出的所有文件),而在所有已安装的软件包中搜索
libopencv-contrib-dev
其路径中的文件,该路径仅匹配您列出的四个文件。这是我的疏忽。
第一个包含是不够的,第二个也是需要的。
虽然这解决了问题,但我希望能解释一下为什么没有任何有用的文件出现在
dpkg -S
.