Cmake工程-配置opencv读取图像(win)
前言:跨平台开发的初衷便是一处开发,到处运行。昨天折腾了一天,简单配置opencv来读取一张我的帅照。本篇在windows下测试,但既然为跨平台,那么在unix下也是可以的,条件调用即可。
一、vs创建cmake工程
文件目录如下:
源文件:
#include "cmake_opencv.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("D://test.jpg");
imshow("test", img);
waitKey(0);
return 0;
}
二、CMakeLists.txt
# TODO: 如有需要,请添加测试并安装目标。
# CMakeList.txt: opencvTest 的 CMake 项目,在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)
project(cmake_opencv)
# 设置opencv目录,其实是OpenCVConfig.cmake目录,它在/x64/vc14/lib下
# set(OpenCV_DIR "D:/masterstu/C++/opencv342/opencv/build/x64/vc14/lib")
# 其实去看文档会发现OpenCVConfig.cmake文档里就要求我们这样写就行
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS}) # Not needed for CMake >= 2.8.11
# 将源代码添加到此项目的可执行文件。
add_executable (cmake_opencv "cmake_opencv.cpp" "cmake_opencv.h")
target_link_libraries(cmake_opencv ${OpenCV_LIBS})
没事多看看源码中的东西还是有帮助的。
然后这样写了你会发现报了这么个错:
是什么意思呢?大致就是说没有找到那个配置文件,你需要设置一个OPENCV_DIR来设置它
然后就加上这句
set(OpenCV_DIR "D:/masterstu/C++/opencv342/opencv/build/x64/vc14/lib")
这下该没错了吧,点击保存,成功。其实之前到这一步还有个错误,然后修改
得把这个修改未true,否则还会报错,我秀改了之后就好了, 但是在记录此博客时发现,我改回false竟然也没报错,这一点有些奇怪。不过遇见时对应修改就可以,这里提个醒。在此更新下,这个错误我浮现了,是在生成vs工程时会出现:(更正,opencv自带的cmake配置文件需要到x64/vcx/lib下,并非build下)
所以,将set(OPENCV_FOUND TRUE)即可。重新cmake,成功。
生成vs工程:cmake -G"Visual Studio 15 2017 Win64" ..
解释:我的opencv是opencv342 64位,默认生成32位的工程,否则会爆模块计算机类型与目标计算机类型不匹配,我的vs是2017.以下是生成的vs工程,点击可以直接运行。
三、结果
帅就是这么自信!
四、总结
本篇简单记录了下图像处理时cmake工程结合opencv配置开发的一些问题,方便后续回顾。
上一篇: 你这样remove过吗
下一篇: H264编码数据实时传输带宽需求