我的小站、Github
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。
OpenCV轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。该程序库也可以使用英特尔公司的IPP进行加速处理。
此教程帮助大家在 Windows 10 下 快速配置 OpenCV-4.4.0
从 官网 下载已经编译好的文件
解压到自定义路径
得到一个opencv文件夹
D:\Environment\opencv\build\x64目录下有两个文件夹,vc14、vc15
如果 Visual Studio 版本是2017或2019,下面的环境变量以及 Visual Studio 的配置中,选择 vc15, 如果是 2015,选择vc14。
下面我使用 VS2017 演示。
新增path环境变量 D:\Environment\opencv\build\x64\vc15\lib
前言
如果已安装 Visual Studio 或者 Visual Studio 生成工具,并且想要在Clion上运行opencv程序的话,可以跳过这一步,直接去配置Clion。
安装
官网
新建工程
略
配置
右键项目名,选择属性
平台选择X64
单击左侧配置属性 --> VC++ 目录,设置右侧包含目录和库目录
包含目录添加两个变量(根据自己的路径添加)
D:\Environment\opencv\build\include\opencv2
D:\Environment\opencv\build\include
库目录添加一个变量
D:\Environment\opencv\build\x64\vc15\lib
单击左侧**配置属性 --> 链接器 --> 输入 **,设置右侧附加依赖项
附加依赖项添加一个变量
opencv_world440d.lib
如果下载的是其他版本的opencv,请使用对应变量,在 D:\Environment\opencv\build\x64\vc15\bin 路径中可以找到
例如,OpenCV4.1.0 对应的是 opencv_world410d.lib
打开 Clion 项目,File --> settings --> Build, Execution, Deployment --> Toolchains
Environment,Cmake,Debugger 都OK之后,编辑 CMakeLists.txt
(opencv 为演示项目名,请自行替换)
cmake_minimum_required(VERSION 3.16)
# 项目名
project(opencv)
# 搜索OpenCV目录
find_package(OpenCV REQUIRED)
# 信息输出(非必须)
message(STATUS "OpenCV library status:")
message(STATUS " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
add_executable(opencv main.cpp)
# 链接OpenCV库文件
target_link_libraries(opencv ${OpenCV_LIBS})
#include
#include "opencv2/opencv.hpp"
int main()
{
std::cout << "OpenCV config sample." << std::endl;
std::cout<< cv::getBuildInformation() <
此样例来自官方文件
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include
using namespace cv;
using namespace std;
void drawText(Mat & image);
int main()
{
cout << "Built with OpenCV " << CV_VERSION << endl;
Mat image;
VideoCapture capture;
capture.open(0);
if(capture.isOpened())
{
cout << "Capture is opened" << endl;
for(;;)
{
capture >> image;
if(image.empty())
break;
drawText(image);
imshow("Sample", image);
if(waitKey(10) >= 0)
break;
}
}
else
{
cout << "No capture" << endl;
image = Mat::zeros(480, 640, CV_8UC1);
drawText(image);
imshow("Sample", image);
waitKey(0);
}
return 0;
}
void drawText(Mat & image)
{
putText(image, "Hello OpenCV",
Point(20, 50),
FONT_HERSHEY_COMPLEX, 1, // font face and scale
Scalar(255, 255, 255), // white
1, LINE_AA); // line thickness and type
}