(手把手附图,超详细)VS2015、VS2017编译OpenCV核心模块和opencv-contrib模块

准备工作

1、cmake(如果需要编译X64的库,需要下载X64cmake)
链接:https://cmake.org/download/
2、Opencv源码和opencv_contrib源码(切记!切记!切记!版本一定要相同。)
譬如说,OpenCV 4.3.0 和 OpenCV_contrib 4.3.0
链接:https://github.com/opencv
什么?你不知道怎么下载相同的版本?那看这里来
点击issue,所有发行版都在这里啦。后面的号码对应的就是版本号。
链接:https://github.com/opencv/opencv/releases
3、VS2015、VS2017、VS2019都可以啦
在这里插入图片描述
接下来就开始正式开始操作啦。

第一步

找到下载的cmake目录。打开bin目录,双击cmake-gui.exe
在这里插入图片描述
在这里插入图片描述

第二步

如图所示
第一个黄线位置选择你刚才下载的opencv4.3.0目录,是根目录并不是你下载的文件的某一个子目录。
第二个黄线位置选择你需要构建的目录,建议创建一个空目录。我这里是创建了一个空的build目录来进行存放解决方案。
在这里插入图片描述

第三步

在填写完上述两个地址以后,然后点击左下角的configure按钮,会弹出如下的操作框,这里需要选择你的编译器版本和需要生成的库的类型是32位的还是64位的。我在这里选择VS2015、X64。单选框选择第一个use default native compilers。点击finish。自动开始configure
在这里插入图片描述

第四步

在第一次configure之后,界面一般会有很多红色的项,找到
OPENCV_EXTRA_MODULES_PATH,填入你下载第二个库OpenCV_contrib中modules路径。
(注意:这里需要填写的是OpenCV_contrib模块中的子目录modules路径)
继续点击configure,会发现一些红色项变白色了,但是还会有一些红色的项,什么都不用改,再次点击configure,终于,所有的项都变白色了。点击generate。
在这里插入图片描述

第五步

找到你创建的那个空的目录(刚才第二个黄线的地址),会生成如下的内容。双击下面标记红色线的解决方案,会开始加载项目。
在这里插入图片描述
项目加载完以后会有如下的模块被加载,如果有face模块,证明加载contrib库成功。
在这里插入图片描述
成功以后默认是ALL_BUILD项目,直接点击上面的本地window调试器运行,他就会自动开始进行编译。
在这里插入图片描述
在这里插入图片描述
编译完以后会有如下的弹窗(这个没事,因为他只是生成库并不能直接运行)。
在这里插入图片描述
至此,我们就生成了所有的库,但是有一个问题,不是官方给的那种有bin、include目录的那种。那就需要构建INSTALL目录了。右击INSTALL目录 -> 仅用于项目 -> 仅生成INSTALL项目。
在这里插入图片描述
过程:
在这里插入图片描述
至此,所有的操作就已经完成了。我们打开刚才的解决方案路径,赫然发现里面多了一个install的目录。
在这里插入图片描述
双击打开,这不是就和官方下载的一模一样嘛!!!再打开X64
在这里插入图片描述
在这里插入图片描述
里面的bin和lib就是我们需要的库了。。。。
在这里插入图片描述

测试

赶紧测试一把:

#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/face.hpp>
#include <opencv2/highgui/highgui_c.h>

using namespace  cv;
using namespace cv::face;
using namespace std;

int main()
{
	Mat m1 = imread("girl2.jpg");
	namedWindow("sss", CV_WINDOW_NORMAL);
	imshow("sss", m1);
	waitKey(50000);
	return 0;
}

结果:
在这里插入图片描述

完结,撒花。。。。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV的TBB(Threading Building Blocks)模块是一个并行计算库,用于在多核处理器上加速图像处理和计算密集型任务。TBB提供了一种高级的抽象方法,使开发人员能够轻松地编写并行代码,而无需处理底层线程管理。 在OpenCV中,TBB模块提供了一些函数和类,以利用多线程执行图像处理操作。使用TBB模块可以实现并行的图像处理,从而加快处理速度。例如,可以并行地对图像进行滤波、图像金字塔构建、特征提取等操作。 要使用OpenCV的TBB模块,首先需要确保OpenCV库是使用TBB支持编译的。然后,可以在代码中包含相应的头文件,并使用TBB提供的函数和类来并行执行图像处理任务。 以下是一个简单的示例,展示了如何使用TBB模块在多线程中执行图像滤波操作: ```cpp #include <opencv2/opencv.hpp> #include <opencv2/core/parallel/parallel.hpp> using namespace cv; void filterImage(const Mat& input, Mat& output) { parallel_for_(Range(0, input.rows), [&](const Range& range) { for (int i = range.start; i < range.end; i++) { // 在这里进行滤波操作 // ... } }); } int main() { Mat inputImage = imread("input.png", IMREAD_COLOR); Mat outputImage; filterImage(inputImage, outputImage); imshow("Output Image", outputImage); waitKey(0); return 0; } ``` 在以上示例中,`parallel_for_`函数使用TBB库来并行地遍历图像的每一行,并在每行上执行滤波操作。这样可以加速图像处理过程。 需要注意的是,TBB模块并不是OpenCV核心功能,而是作为一个可选的扩展模块提供的。因此,在使用TBB模块之前,需要确保编译和安装了包含TBB支持的OpenCV版本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值