OpenCV是一个计算机视觉的开源库。英文全称是:Open Source Computer Vision Library。
常用的OpenCV的核心模块:
Image Process
Camera Calibration and 3D Reconstruction
Video Analysis
Object Detection
Machine Learning
Deep Learning
GPU Acceleration
……
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:
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.代码测试#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配置成功!
形态学操作图像形态学操作:基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学。
形态学有四个基本操作:膨胀、腐蚀、开、闭。
膨胀与腐蚀2.1.膨胀
跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状。
2.2.腐蚀
腐蚀跟膨胀操作的过程类似,唯一不同的是以最小值替换锚点重叠下图像的像素值。