准备工作:
源码下载,官网:https://opencv.org/releases.html,下载Source选项;
下载完成后解压到任意目录下,不包含中文路径,在源码同级目录下新建OpenCV-build文件夹,用于存放编译文件。
工程生成:
打开CMake,源码和编译生成路径分别选择上述解压源码位置和新建OpenCV-build文件夹,点击Configure,弹出对话框选择Visual Studio 14 2015 Win64,点击finish;
配置过程中需要下载ffmpeg和ippicv,确保过程不断网;
配置完成后可以直接进行Generate,也可以根据自己需要增减安装项目,我自己装了Eigen,QT和VTK,取消了Python,对此,WITH_EIGEN,WITH_QT和WITH_VTK勾选上,BUILD_opencv_python3取消勾选,相应添加EIGEN_INCLUDE_PATH源码路径,VTK_DIR编译生成路径和QT相关路径,完成后再次点击Configure;(此时出错一般为相应路径没找到或填错)
配置完成后点击Generate,成功后,点击Open Project,自动打开VS2015;
编译源码:
项目ALL_BUILD和INSTALL编译,有两种方式:
一是分别编译,在Debug模式下,分别右键ALL_BUILD和INSTALL,点击生成(build),Release模式下同样;
二是整体编译,打开生成》批生成,选中ALL_BUILD和INSTALL的Debug和Release,点击生成;
编译时间较长,耐心等待,编译成功,即OpenCV库编译完成。
测试OpenCV库:
同样使用CMake实现相关配置,任意目录下新建一个文件夹,HelloWorld,在其中新建两个文件夹,src和build;
在src中新建两个文本文档,HelloWorld.cxx和CMakeLists.txt,注意修改后缀名;
HelloWorld.cxx内容:
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
cv::Mat img = cv::imread(std::string("D:/Personal/Pictures/badminton.jpg"));
if (img.empty())
{
return -1;
}
cv::namedWindow("Example1", cv::WINDOW_AUTOSIZE);
cv::imshow("Example1", img);
cv::waitKey(0);
cv::destroyWindow("Example1");
return 0;
}
注:图片路径根据自己电脑路径修改,同时注意右斜杠/和双左斜杠\\
CMakeLists.txt内容:
cmake_minimum_required(VERSION 3.0)
PROJECT(OpenCVHelloWorld)
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(OpenCVHelloWorld HelloWorld.cxx )
target_link_libraries(OpenCVHelloWorld ${OpenCV_LIBS})
打开CMake,源码和编译生成路径分别选择上述src和build,点击Configure,选择Visual Studio 14 2015 Win64,点击finish;
配置可能会出现错误,一般为OpenCV_DIR-NOTFOUND,添加上述编译成功的OpenCV-build文件路径即可,如S:\SDK_X64\opencv-4.0.0\OpenCV-build;
再次点击Configure,成功后点击Generate,再点击Open Project;
打开VS后,将OpenCVHelloWorld项目设为启动项,右键,设为启动项目;
点击调试》OpenCVHelloWorld属性》调试》环境,添加path=S:\SDK_X64\opencv-4.0.0\OpenCV-build\bin\Debug;S:\SDK_X64\QT5.7.0\5.7\msvc2015_64\bin;%path,其中路径为自己编译成功的OpenCV-build文件夹下,因为我自己还安装了QT所以也需要QT路径,点确定;
编译运行项目成功。
参考链接:
https://blog.csdn.net/hzgloveyd/article/details/79031761
https://blog.csdn.net/rrrfff/article/details/76796261