首页 > 编程语言 > php 编程语言Windows下CMake编译安装OpenCV

Windows下CMake编译安装OpenCV

这是一个面向新手的在windows上运进opencv,helloword的教程.在这里我们使用vs2019来编译opencv,并运行一个helloworld来展示如何用CMake来编译运行.

0.准备工作

需要的软件: VisualStudio 2019社区版,CMake,在系统变量下加入VS2019 MSBuild.exe的路径.

1. 下载:

在https://opencv.org/releases/下载source文件

2. 编译:

打开CMakeGUI 如图:在Browser Source处选择解压后的源码, 在Build处选择build结果存放的目录.

然后勾选需要build的内容, 最后点 Generate.在这里我们选择VisualStudio 16 2019,设置平台为x64

生成过程中可能会遇到网络问题导至的下载错误(需要自行解决网络问题), 链接库错误等(可考虑去掉不需要的功能)

如:在这里我们选择了opencv_world,并去掉了对于python3的支持.

3.编译

生成结束后,build文件夹下内容应如下所示:

我们用vs打开OpenCV.sln,选择ALL_BUILD后进行编译

如果成功会有如下的显示:

这时build文件夹下应该会有生成出的install文件夹(没有就选install再进行一次编译)内容如下.

能看到这个, 我们的opencv就编译好了.

最后需要在系统环境变量的PATH中加入opencv的bin路径:D:\Developments\opencv_build\install\x64\vc16\bin

4.编译运行helloworld

我们同样使用cmake来编译运行helloworld

demo.cpp

1 #include "opencv2/opencv.hpp" 2 #include "opencv2/highgui/highgui.hpp" 3  4 using namespace cv; 5  6 int main(int argc, char** argv) { 7     //create a gui window: 8     namedWindow("Output",1); 9     //initialize a 120X350 matrix of black pixels:10     Mat output = Mat::zeros( 120, 350, CV_8UC3 );11     //write text on the matrix:12     cv::putText(output, "Hello World", cv::Point(10,output.rows-18),13         cv::FONT_HERSHEY_SIMPLEX, 0.4, cv::Scalar(200,200,250), 1, 8);14     //display the image:15     imshow("Output", output);16     //wait for the user to press any key:17     waitKey(0);18     return 0;19 20 }

下面是一个基础的opencv. helloworld级cmake文件.先设置OpenCV_DIR到install文件夹,cmake的 find_package会自动找到头文件和库的位置.在编译完程序后,需要linkopencv_world这个库.

CMakeLists.txt

1 project("DEMO") 2  3 cmake_minimum_required(VERSION 3.21) 4  5 set(OpenCV_DIR "D:/Developments/opencv_build/install")  # opencv安装位置 6 find_package(OpenCV REQUIRED) # 让CMake自动找OpenCV的头文件和库 7  8 include_directories(${OpenCV_INCLUDE_DIRS}) # 要包含的头文件 9 add_executable(demo demo.cpp)10 target_link_libraries(demo "D:/Developments/opencv_build/install/x64/vc16/lib/opencv_world453d.lib" ) # 链接OpenCV库

新建build文件夹后,cmake ..

再MSBuild.exeDEMO.sln进行编译

最后,生成好的文件会在Debug下

(0)

相关推荐