毛星云版opencv简记

argc,argv的具体含义

main(int argc,charargv[],char**env,第一个参数,int类型的argc,为整型,用来统计程序运行时发送给main函数的命令行参数的个数,在Vsiual Studio中默认值为1。第二个参数,char类型的argv[],为字符串数组,用来存放指向的字符串参数的指针数组,每一个元素指向一个参数。第三个参数是char **类型的env,为字符串数组。
在这里插入图片描述在这里插入图片描述

split()函数

在这里插入图片描述

merge()函数

在这里插入图片描述

访问图像像素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

形态学滤波

方框滤波 -boxblur函数
均值滤波-blur函数
高斯滤波-GaussianBlur函数
中值滤波-medianBlur函数
双边滤波-bilateralFilter
形态学:二值腐蚀和膨胀,二值开闭运算,骨架抽取,极限腐蚀,击中击不中变换,形态学梯度,Top-hat变换,颗粒分析,流域变换,灰值腐蚀和膨胀,灰值开闭运算,灰值形态学梯度。
腐蚀 erode
膨胀dilate
开运算:先腐蚀后膨胀
闭运算:先膨胀后腐蚀
形态学梯度:膨胀图与腐蚀图之差,保留轮廓边缘
顶帽:原图与开运算结果图之差。
黑帽:闭运算的结果图与原图之差。
在这里插入图片描述
在这里插入图片描述
修改morphologyEx的第三个参数,可以进行其他的形态学操作。
漫水填充:使用特定的颜色填充连通区域。floodFill函数。一个版本带mask,一个不带。

图像金字塔

pyrUp 与pyrDown 对图像向上向下采样。
resize函数将图像放大或者缩小,最直接的方法。
高斯金字塔:用来向下采样。拉普拉斯金字塔:用来从金字塔低层图像重建上层。
在这里插入图片描述
阈值化
固定阈值操作:Threshold()函数
自适应阈值操作:adaptiveThreshold()函数。
边缘检测步骤:滤波,增强,检测。

图像变换

Candy算子:最优的边缘检测算法。
在这里插入图片描述
高阶用法:
在这里插入图片描述
sobel算子:主要用于边缘检测的离散微分算子,用来计算图像灰度函数的近似梯度。
Sobel函数使用扩展的Sobel算子,计算一阶、二阶、三阶或混合图像差分。
在这里插入图片描述
Laplacian算子:n维欧几里得空间的一个二阶微分算子。定义为梯度的散度div。
在这里插入图片描述

Scharr滤波器:配合Sobel算子的运算而存在。使用Scharr滤波器计算x或y方向的图像差分。
在这里插入图片描述
在这里插入图片描述

霍夫变换

快速准确地检测出直线或者圆。从图像中识别几何形状的基本方法之一。最基本的是从黑白图像中检测直线。(特征提取技术)在opencv中分为霍夫线变换与霍夫圆变换。
霍夫线变换(标准霍夫变换,多尺度霍夫变换,累计概率霍夫变换)
输入是边缘二值图像。
在这里插入图片描述

标准霍夫变换HoughLines
在这里插入图片描述

在这里插入图片描述
累计概率霍夫变换:HoughLinesP()
在这里插入图片描述

在这里插入图片描述
霍夫圆变换 HoughCricles()
通过霍夫梯度法的方法解决圆变换的问题。
在这里插入图片描述

在这里插入图片描述

重映射

把一幅图像的某像素放置到另一个图片指定位置的过程。
remap()函数
在这里插入图片描述

在这里插入图片描述
仿射变换
一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。常见的有:旋转,平移,缩放。
warpAffine()函数,做一些简单的重映射。
在这里插入图片描述

getRotationMatrix2D()函数,用于计算二维旋转变换矩阵。变换将旋转中心映射到它自身。
在这里插入图片描述

直方图均衡化

扩大图像的动态范围
equalizeHist()函数
在这里插入图片描述

在这里插入图片描述

图像轮廓与图像分割修复

寻找轮廓 findContours()函数
在这里插入图片描述

绘制轮廓 drawContours()函数
在这里插入图片描述

凸包
给定二维平面上的点集,将最外围的点连接起来构成的凸多边形。
寻找凸包 convexHull()函数
在这里插入图片描述

在这里插入图片描述

多边形将轮廓包围

用多边形来表示轮廓
返回外部矩形 boundingRect()函数
寻找最小外围矩形 minAreaRect()函数
寻找最小包围原型 minEnclosingCircle()函数
用椭圆拟合二维点集 fitEllipse()函数
逼近多边形曲线 approxPolyDP()函数

图像的矩

在这里插入图片描述

矩的计算 moments()函数
可以计算形状的重心、面积,主轴和其他形状特征
计算轮廓面积 contourArea() 函数
计算整个轮廓或部分轮廓的面积
计算轮廓长度 arcLength()函数
在这里插入图片描述
在这里插入图片描述

分水岭算法

将图像边缘转化为“山脉”,将均匀区域转化为“山谷”,有助于分割目标。
在这里插入图片描述

watershed()函数

在这里插入图片描述

图像修补

被破坏的区域不是太大,并且在被破坏区域边缘包含足够多的纹理和颜色,那么图像修补技术可以很好地恢复图像。
inpaint()函数

在这里插入图片描述

直方图与匹配

计算直方图 calcHist()函数,用于计算一个或者多个阵列的直方图。
寻找最值 minMaxLoc()函数,找到全局最小值与最大值。(第二册p134)
直方图对比 compareHist()函数
在这里插入图片描述

第三个参数是选择距离的标准,有4种方法。(示例程序第二册p140)

反向投影

就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征的方法。多用于在输入图像中查找与特定图像最匹配的点或者区域,即定位模板图像出现在输入图像的位置。
计算反向投影 calcBackProject()函数
通道复制 mixChannels()函数
在这里插入图片描述

在这里插入图片描述

模板匹配

模板匹配 matchTemplate()函数

在这里插入图片描述

  1. 平方差匹配法
  2. 归一化平方差匹配法
  3. 相关匹配法
  4. 归一化相关匹配法
  5. 系数匹配法
  6. 化相关系数匹配法 (示例程序第二册p154)
    在这里插入图片描述

在这里插入图片描述

feature2d组件

角点检测

图像特征分为三类:边缘、角点(感兴趣关键点)和斑点(感兴趣区域)。
某一点在任意方向的一个微小变动都会引起灰度很大的变化,称之为角点。
角点的另外描述:

  1. 一阶导数(灰度的梯度)的局部最大所对应的像素点。
  2. 两条及两条以上边缘的交点。
  3. 图像中梯度值和梯度方向的变化速率都很高的点。
  4. 角点处的一阶导数最大,二阶导数为0,指示了物体边缘变化不连续的方向。
    角点检测算法分为:基于灰度图像的角点检测,基于二值图像的角点检测,基于轮廓曲线的角点检测。

harris角点检测

harris角点检测是一种基于灰度图像的角点提取算法,稳定性高,运算速度较慢,角点信息有丢失和位置偏移现象。
cornerHarris()函数
在这里插入图片描述

在这里插入图片描述
harris角点检测与绘制实例(第二册P165)
Shi-Tomasi角点检测(对harris的改进)
确定图像强角点 goodFeaturesToTrack()函数

在这里插入图片描述

goodFeaturesToTrack()函数可用来初始化一个基于点的对象跟踪操作。(示例程序P171)

在这里插入图片描述

在这里插入图片描述

亚像素级角点检测

进行几何测量,需要更高精度。需要坐标值,不是整数值。
寻找亚像素角点 cornerSubPix()函数

在这里插入图片描述

在这里插入图片描述

特征检测与匹配

在这里插入图片描述

SURF算法

是尺度不变特征变换算法SIFT的加速版,标准的SURF比SIFT快好几倍。surf采用的是海森矩阵行列式近似值图像。

在这里插入图片描述

绘制关键点函数 drawKeypoints()函数

在这里插入图片描述

KeyPoint类 ,用于表示特征点

在这里插入图片描述

示例程序第二册P187

在这里插入图片描述

SURF特征提取

SURF算法为每个检测到的特征定义了位置和尺度,尺度值用于定义围绕特征点的窗口大小。
使用SURF进行特征点描述的主要是drawMatches方法和BruteForceMatcher类的应用。
drawMatches()函数
用于绘制相匹配的两个图像的关键点。

在这里插入图片描述

在这里插入图片描述

示例程序:SURF特征提取

在这里插入图片描述

结果为一个Mat矩阵,行数与特征点向量中的元素个数是一致的。每行都是一个N维描述子的向量。

在这里插入图片描述

示例程序第二册P193

在这里插入图片描述

在这里插入图片描述

使用FLANN进行特征点匹配
快速高效匹配(快速最邻近逼近搜索函数库)
DescriptorMatcher::match方法。

在这里插入图片描述

示例程序第二册P196

在这里插入图片描述

在这里插入图片描述

寻找已知物体

在FLANN特征匹配的基础上,可利用Homography映射找出已知物体。

在这里插入图片描述
寻找透视变换 findHomography()函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

进行向量透视矩阵变换 perspectiveTransform()函数

在这里插入图片描述

示例程序第二册P206

ORB特征提取

是brief的改进版
brief就是在特征点附近随机选取若干点对,将这些点的灰度值的大小组合成一个二进制串,将二进制串作为该特征点的特征描述子。ORB没有解决尺度不变性,只追求速度,一般应用在实时的视频处理中。ORB的速度是SIFT的100倍,是SURF的10倍。
示例程序第二册P211
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值