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

Sae*_*omi 4 c++ qt opencv qmake qt5

请假设我想在 Qt-creator 中链接 OpenCV 库,一般来说,我将使用qmake 文件中INCLUDEPATH使用的LIBS变量添加标头和链接库,但如果我们在大多数项目中使用 OpenCV,那么我们必须每次都包含OpenCV库,那么有没有办法在创建项目时自动添加opencv库。我每次都使用以下命令为我的项目添加 OpenCV 库。

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and etc.
Run Code Online (Sandbox Code Playgroud)

更新

我将为 OpenCV4 使用以下头文件:

INCLUDEPATH += /usr/local/include/opencv4
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 5

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
Run Code Online (Sandbox Code Playgroud)

现在只需添加CONFIG += opencv到您的 .pro 文件即可使其正常工作。或者您甚至可以通过编辑来自动启用此功能mkspecs/qconfig.pri

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

...
CONFIG += ... opencv
...
Run Code Online (Sandbox Code Playgroud)

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

2)或者,如果你不想污染Qt安装,你可以使用手动包含:

opencv.pri

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and another libraries
Run Code Online (Sandbox Code Playgroud)

我的程序

include(path/to/opencv.pri)
...
Run Code Online (Sandbox Code Playgroud)