Opencv 3入门(毛星云)摘要

时间:2024-01-01 11:50:51

第一章

环境搭建:

1、  环境变量path 添加  D:\Program Files\opencv\build\x86\vc11\bin

2、  VS在VC++项目中,属性管理器\属性。

VC++目录  包含目录: D:\Program Files\opencv\build\include

D:\Program Files\opencv\build\include\opencv

D:\Program Files\opencv\build\include\opencv2

库目录:  D:\Program Files\opencv\build\x86\vc11\lib

3、连接器\输入\附加的依赖项   opencv_ts300.lib opencv_world300.lib

第六章

三种线性滤波:方框BoxBlur、 均值Blur、高斯GaussianBlur

两种非线性滤波:中值medianBlur、双边bilateralFilter

七种图像处理形态学:腐蚀erode、膨胀dilate、开运算、闭运算、形态学梯度、顶帽、黑帽

几种常用的线性滤波器:

低通滤波器: 允许低频率通过

高通滤波器:允许高频率通过

带通滤波器:允许一定范围频率通过

带阻滤波器:阻止一定范围频率通过,允许其他频率通过

全通滤波器:允许所有通过,仅仅改变相位关系

陷波滤波器(Band-Stop filter):阻止一个狭窄频率范围通过,是一种特殊带阻滤波器

均值滤波是一种方框滤波,本身存在缺陷,在去噪的同时也破坏了图像的细节部分。

高斯模糊的过程就是图像与正态分布做卷积,正态分布又叫高斯分布。

中值滤波基本思想是用像素点领域灰度值的中值来代替该像素点的灰度值,对去除脉冲噪声、椒盐噪声,同时又能保留图像的边缘细节。其基本原理是把数字图像或数字序列中一点的值用该点的一个领域中各点值的中值代替,让周围的像素值接近真实值。从而消除孤立的噪声点。其劣势:中值滤波花费的时间是均值滤波的5倍以上。

数字形态学是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。基本运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度。

腐蚀和膨胀是对白色部分(高亮部分)而言的。

开运算其实就是先腐蚀后膨胀,可以用来消除小物体,在纤细点处分离物体,并且在平滑较大物体边界的同时不明显改变其面积。

闭运算是先膨胀后腐蚀,能够排除小型黑洞(黑色区域)。

形态学梯度(Morphological Gradient)是膨胀图与腐蚀图之差。对二值图像进行这一操作可以将blod的*突出。

顶帽运算是原图像与开运算结果图之差。用来分离比邻近点亮一些的斑块。(如车牌提取)

黑帽运算是闭运算的结果图与原图像之差。突出比原图轮廓周围的区域更暗的区域。用来分离暗斑。

漫水填充(floodFill)就是自动选中和种子点相连的区域,接着将该区域替换成指定的颜色。

图像金字塔:pyrUp,pyrDown对图像进行向上和向下采样。缩放图像resize.

阈值化: Threshold()  adaptiveThreshold()  自适应

第七章

边缘检测

Canny算子

Soble算子

Laplacian算子

Scharr滤波器

霍夫变换(是一种特征提取技术,应用于在图像中识别几何形状(直线或圆等))

支持三种不同的霍夫线变换:标准(standard Hough transform , SHT), 多尺度(Multi_Scale Hough Transform ,  MSHT)和累计概率霍夫变换(Progressive probabilistic Hough Transform, PPHT)

HoughLines 函数调用标准和多尺度霍夫变换

HoughLinesP 函数调用累计概率霍夫变换,执行效率很高,一般用这个。

HoughCircles ,用霍夫梯度法来解决圆变换问题。此法可以高效执行。

重映射:remap()  把一幅图像中某位置的像素放置到另一个图片指定位置的过程。

仿射变换:指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。它保持了二维图形的平直性和平行性。三种常见的变换形式:旋转(线性变换)、平移(向量加)、缩放(线性变换)。

warpAffine 来实现一些简单的重映射。

getRotationMatrix2d来获得旋转矩阵。

直方图均衡化:是灰度变换的一个重要应用。应用于图像增强处理中。就是用一定的算法使直方图大致平和的方法。

equalizeHist

第八章

findContours()  寻找轮廓

drawContours()  绘制轮廓

寻找凸包:convexHull()

用多边形表示轮廓

boundingRect  返回外部矩形边界

minAreaRect   寻找最小包围矩形

minEnclosingCircle    寻找最小包围圆形

fitEllipse                               用椭圆拟合二维点集

appproxPolyDP             逼近多边形曲线

矩函数应用于模式识别、目标分类、目标识别与方位估计、图像编码与重构等。一个从一幅数字图形中计算出来的矩集,通常描述了该图像形状的全局特性,并提供了关于该图像不同类型的几何特性信息,比如大小、位置、方向及形状等。

Monments  计算图像所有的矩(最高到3 阶),用来计算形状的重心、面积、主轴和其他形状特征。

contourArea 计算轮廓面积

arcLength   计算轮廓或曲线长度

分水岭算法:是一种基于拓扑理论的数学形态学的分割方法。其计算过程是一个迭代标注过程,分成两个步骤:一个是排序过程,一个是淹没过程。

Watershed

Inpaint   图像修补

第九章

calcHist   直方图

用rectangle 和line 来绘制直方图。

minMaxLoc()   找寻最值

compareHist  直方图对比

反射投影:用于在输入图像(通常较大)中查找与特定图像(通常较小或者仅1个像素 (模板图像))最匹配的点或者区域。

calcBackProject   反射投影

mixChannels     通道复制

matchTemplate    模板匹配

匹配方法:

TM_SQDIFF    平方差匹配法,最好匹配为0.

TM_SQDIFF_NORMED  归一化平方差匹配法

TM_CCORR        相关匹配法

TM_CCORR-NORMED   归一化相关匹配法

TM-CCOEFF    系数匹配法

TM_CCOEFF_NORMED  化相关系数匹配法

方法 SQDIFF 和 SQDIFF_NORMED, 越小的数值有着更高的匹配结果. 而其余的方法, 数值越大匹配效果越好

从简单到复杂,计算代价越来越大。

第十章

Harris角点检测:是一种基于灰度图像的角点提取算法,稳定性高,尤其对L型角点检测精度高。但由于采用了高斯滤波,运算速度相对较慢,角点信息有丢失和位置偏移现象,而且角点提取有聚簇现象。

conerHarris()

Shi-Tomasi 角点检测,是对Harris的改进,此算法最原始的定义是将矩形M的行列式与M的迹相减,再将差值同预先给定的阈值进行比较。后来进行了改进,若两个特征值中较小的一个大于最小阈值,则会得到强角点;

goodFeaturesToTrack()

寻找亚像素角点: cornerSubPix()

第十章

SIFT

SURF,speededup robust features,加速版本的具有鲁棒性的特征算法。Hessian(海森)矩阵是该算法的核心。

findHomeography   找到并返回源图像与目标图像之间的透视变换H.

perspectiveTransform  进行向量透视矩阵变换。

ORB算法:是oriented brief是brief算法的改进版,ORB是sift的100倍,是sruf 的10倍。

缺点:不具备旋转不变性,对噪声敏感,不具备尺度性不变性。