本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.OpenCV简介
OpenCV是一个计算机视觉的开源库。英文全称是:Open Source Computer Vision Library。
常用的OpenCV的核心模块:
- Image Process
- Camera Calibration and 3D Reconstruction
- Video Analysis
- Object Detection
- Machine Learning
- Deep Learning
- GPU Acceleration
- ……
官方网站:https://opencv.org
GitHub:https://github.com/opencv
相关知识补充:
SDK:软件开发工具包(Software Development Kit)一般都是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。(资料来源:百度百科:SDK)
GPU:图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的。GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。GPU相当于专用于图像处理的CPU,正因为它专,所以它强,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU。(资料来源:百度百科:GPU)
GPU通用计算方面的标准:目前有OpenCL、CUDA、ATI STREAM。
2.OpenCV配置
电脑环境:Mac+Clion+C++。
2.1.OpenCV下载
OpenCV的两种下载方法:
- 官网下载(官网地址见上文)。
- 通过HomeBrew下载。
我个人是通过HomeBrew下载的,也推荐大家使用这种下载方式,方便包的管理和更新。具体流程见下:
2.1.1.安装HomeBrew
HomeBrew中文官方网址:HomeBrew
打开终端,输入以下命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.1.2.下载CMake
CMake官方网站:CMake
点击Download
进入下载页面,选择适合的Platform
进行下载,我选择的是Mac OS
:
但是,下载完成之后,在终端依旧无法使用cmake命令,这时需要进一步的设置:
点击How to Install For Command Line Use
,出现以下提示:
选择第二种方法,在终端输入:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
这样使得每次打开终端,都可以正确识别cmake命令。
当然,也可以选择使用HomeBrew下载CMake,在终端输入如下命令即可:
brew install cmake
2.1.3.下载OpenCV
使用HomeBrew下载OpenCV,在终端输入以下命令:
brew install opencv
下载的为最新版本的OpenCV,我下载的版本为4.0.1。
2.2.OpenCV在Clion中的配置
打开Clion,新建一个C++项目。
修改CMakeLists.txt
:
1
2
3
4
5
6
7
8
cmake_minimum_required(VERSION 3.13) ##cmake版本
project(CDemo2) ##项目名称
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp) ##main.cpp改为自己定义的名字
add_executable(CDemo2 ${SOURCE_FILES}) ##CDemo2改为自己的项目名称
target_link_libraries(CDemo2 ${OpenCV_LIBS}) ##CDemo2改为自己的项目名称
2.3.代码测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat p1=imread("/Users/xinshichao/PersonalWork/C++Demo/Pictures/p1.jpeg"); //改成自己的图片路径,尽量使用绝对路径
if(!p1.data){
printf("could not find the image...\n");
}
namedWindow("output",WINDOW_AUTOSIZE);
imshow("output",p1);
waitKey(0);
return 0;
}
输出结果:
OpenCV配置成功!