官网地址(有梯子的可以下载)
下载地址(我将3.4.10和4.2.0两个版本的打包上传到,有C币的可以在这里下载)
百度网盘地址 提取码:7tff(我也在百度网盘上传了一份,有条件的可以去网盘下载)
windos10下直接运行exe文件解压到本地即可。
首先,将解压后的OpenCV文件夹下的opencv\build\x64\vc15\bin全局路径添加到系统环境变量中。(不会有同学不知道怎么添加系统环境变量吧?不会吧,不会吧。如果真不会的话可以自行百度)
其次将刚刚bin目录下的三个dll文件opencv_ffmpeg341_64.dll、opencv_world341.dll、opencv_world341d.dll 都添加到系统PATH可以找到的位置,如C:\Windows\SysWOW64。
首先打开vs,新建一个项目。
打开刚刚新建项目的属性页。(需要说明的是,可以看到下图中解决方案资源管理器内有ALL_BUILD和ZERO_CHECK,这是因为我是通过在终端cmake编译生成的vs项目,而如果你是直接在vs内新建工程就不会有这两个,所以不用担心。如果有上面那两个的话需要在编译的时候把它们删除即可,因为ALL_BUILD本身就是编译不过的。)
如上图,在VS++目录选项内,在包含目录内添加F:\software\Opencv\opencv\build\include,即include目录。在库目录内添加F:\software\Opencv\opencv\build\x64\vc15\lib,即lib目录。在链接器->输入->附加依赖项内添加opencv_world341d.lib即可。
新建cpp,写入以下代码
#include "opencv2/opencv.hpp" #include <iostream> #include <string> using namespace std; using namespace cv; int main(int argc, char** argv) { string file = "../images/bmp_test.bmp"; //这里改为你本机的图片路径即可 Mat image; image = imread(file, 1); if (!image.data) { cout << "No image data" << endl; return -1; } Mat gray_img; cvtColor(image, gray_img, COLOR_BGR2GRAY); imshow("gray",gray_img); cv::waitKey(0); return 0; }输出结果如图。
补充一部分内容。原本我是不打算用VS来编译opencv项目的,最初是想在sublime编辑器写代码(不想用IDE),然后手写CMakeLists.txt,用CMake编译生成Makefile之后,make一下生成可执行文件。但是在实际的操作中遇到了很多问题,查了很多资料,最终还是没有解决,所以折中了一下用VS来编译。
以下内容记录我遇到的问题
1、首先cmake编译遇到找不到OpenCVConfig.cmake的问题
解决方法:windows10下OpenCVConfig.cmake在 x64/vc15/lib文件夹下,所以在CMakeLists.txt中添加OpenCV的目录 set(OpenCV_DIR F:/software/Opencv/opencv/build/x64/vc15/lib)即可解决。
2、cmake成功生成Makefile之后,make编译出错
报错undefined reference to cv::imread(cv::String const&, int) 等等。我猜测这个问题应该是没有找到正确的include目录,但是修改了很多地方一直没有解决问题,最终也卡在了这里。
总结就到这里,如果哪位同学有相似的经历同时解决了这个问题可以在评论区留言,不胜感激。
END