如何让 OpenCV 成为我的 qt 项目的默认库?

How can I make OpenCV the default library for my qt projects?

请假设我想要 link OpenCV 库 Qt-creator,一般来说,我将使用 [=12 添加 headers =] 和 link 库使用 LIBS 变量,它在 qmake 文件中使用,但是如果我们在大多数项目中使用 OpenCV,那么我们每次都必须包含 OpenCV 库,所以有什么办法在创建项目时自动添加 opencv 库。 我每次都使用以下命令为我的项目添加 OpenCV 库。

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and etc.

更新

我将为 OpenCV4 使用以下 headers:

INCLUDEPATH += /usr/local/include/opencv4

当你安装opencv时你必须同时安装opencv.pc文件,这个文件可以用来简化它,因为Qt支持package.config,如果是这样,它会替换它显示的内容以下:

unix: CONFIG += link_pkgconfig
unix: PKGCONFIG += opencv

实际上 Qt Creator 提供了一种简单的方法,您只需右键单击您的项目名称,然后 select 选择添加库:

然后你会看到一个对话框,你必须select图书馆的类型:

在这种情况下我使用了第四个选项,并输入了库的名称:opencv。

然后按下一步和完成按钮。

1) 您可以在 mkspecs/features 目录中创建一个 .prf(项目功能)文件:

/usr/share/qt5/mkspecs/features/opencv.prf

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and another libraries

现在只需将 CONFIG += opencv 添加到您的 .pro 文件中即可使其正常运行。或者您甚至可以通过编辑 mkspecs/qconfig.pri:

来自动启用此功能

/usr/share/qt5/mkspecs/qconfig.pri

...
CONFIG += ... opencv
...

顺便说一句。 qconfig.priqt_config 的一部分,它由所有 QMake 的机器相关规范加载,因此它应该始终有效。但是,也可以仅修补特定规范(例如,/usr/share/qt5/mkspecs/linux-g++/qmake.conf,或适合您的配置的任何内容)。当然,甚至可以将所有这些 INCLUDEPATH+=...LIBS+=... 直接添加到 qmake.conf 中并完全删除 .prf 文件。

2) 另外,如果你不想污染Qt安装,你可以使用手动include:

opencv.pri

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and another libraries

myprogram.pro

include(path/to/opencv.pri)
...