如何安装 OpenCV 和 OpenCV_contrib

这篇博客详细介绍了如何一步步安装OpenCV 4.4.0及其扩展模块opencv_contrib。从下载源码、解压、安装依赖库,到执行cmake和make命令,再到配置环境变量,最后通过小程序测试验证安装成功。过程中还提到了可能遇到的错误和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 下载Opencv

首先,从opencv官网下载opencv3.4.0以及opencv_contrib压缩包:
https://opencv.org/releases/
在页面下找到3.4.0版本并下载Sources压缩包

opencv_contrib下载网址
https://github.com/opencv/opencv_contrib

https://codeload.github.com/opencv/opencv_contrib/zip/3.4.8
https://codeload.github.com/opencv/opencv/zip/3.4.8

2 解压

zip 文件用 unzip <文件名.zip> 命令解压
tar.gz 文件用 tar -zxvf 
### 如何在 Qt 中使用 OpenCV_contrib 要在 Qt 中成功配置并使用 OpenCV_contrib 模块,需要完成以下几个方面的设置: #### 1. 安装 OpenCV OpenCV_contrib 首先,确保已正确安装 OpenCV 及其 contrib 扩展包。可以通过源码编译的方式实现此目标。 - 下载 OpenCV OpenCV_contrib 的最新版本: ```bash git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git ``` - 配置 CMake 并启用 `OPENCV_EXTRA_MODULES_PATH` 参数来指定 contrib 路径[^1]: ```bash cmake -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules .. ``` 通过上述命令,CMake 将会识别到额外的 contrib 模块,并将其纳入构建过程之中。 #### 2. 创建 Qt 工程并链接库文件 创建一个新的 Qt 工程或者打开现有的工程,在 `.pro` 文件中添加必要的配置项以便于连接 OpenCV 库以及头文件目录。 - 修改 `.pro` 文件如下所示: ```plaintext QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 # 添加 Opencv 头文件路径 INCLUDEPATH += /path/to/your/opencv/build/include \ /path/to/your/opencv_contrib/modules/xfeatures2d/include # 连接动态库或静态库 LIBS += -L/path/to/your/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_xfeatures2d ``` 注意替换 `/path/to/your/...` 为实际安装位置中的具体路径。 #### 3. 编写测试代码验证功能 编写简单的程序片段用于确认是否能够正常调用 OpenCV_contrib 提供的功能模块。例如下面的例子展示了如何加载图像并对它应用 SIFT 特征检测器(属于 xfeatures2d 模块的一部分): ```cpp #include <QCoreApplication> #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/xfeatures2d.hpp> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); cv::Mat image = cv::imread("test.jpg"); if (image.empty()) { qWarning() << "Failed to load image"; return -1; } try { std::vector<cv::KeyPoint> keypoints; auto detector = cv::xfeatures2d::SIFT::create(); // 使用 SIFT 算法 detector->detect(image, keypoints); qDebug() << QString("Detected %1 keypoints").arg(keypoints.size()); } catch(const cv::Exception& e){ qCritical() << "Error:" << e.what(); } return a.exec(); } ``` 以上代码尝试读取一张图片并通过 SIFT 方法提取特征点。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小秋slam实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值