OpenCv相关知识梳理

本博客是作者在学习OpenCv入门后简单对知识点进行梳理,各种方法和函数。

相关代码:https://github.com/skyCreateXian/opencv.git

 

core组件:

基础图像容器Mat-Mat类由两个数据部分组成,矩阵头(包含矩阵尺寸、存储方法、存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同,矩阵可以使不同的维数)

7种实例化Mat的方法:Mat()构造函数、构造函数、Ipllmage指针创建信息头、Create()函数,Matlab初始化、小矩阵分割师初始化函数、为已存在的对象创建信息头。

点的表示point类、颜色的表示Scalar类、尺寸的表示Size类、矩阵的表示Rect类、颜色空间转换cvtColor。

基本图像绘制函数:直线line、椭圆ellipse、矩形rectangle、圆circle、多边形fillpoly。

灰度图像在内存中每列是单个子式,多通道图像在内存中列会包含多个子式。

颜色空间缩减:颜色值缩一法。例子颜色值0~9取为0。LUT函数(operationsOnArrays:LUT()<lut>)批量进行图像元素查找、扫描与操作。

计时函数:getTickCount()返回CPU自某个时间以来走过的时钟周期。getTickFrquency()返回cpu一秒钟走过的时钟周期数。

访问图像中像素的三类方法:指针访问:c操作符[](最快),迭代器iterator(安全无越界),动态地址计算(简洁)。

感兴趣区域ROI两种方法:设置矩阵区域Rect,设置感兴趣的行或列的范围。

线性混合操作addWeighted()函数(两个数组加权和)。

分离颜色通道、多通道图像混合:通道分离split()函数,,通道合并merger()函数多个函数合并成为一个多通道的数组。

 

图像傅里叶变换:将它分解成正弦和余弦函数的形态。dft函数,图像增强、去噪、图像分割边缘检测、图像特征提取、图像压缩。

getOptimalDFTSize()函数:返回图像的最优尺寸大小。copyMakeBorder扩充图像边界。magnitude计算而为矢量的幅值。normalize()矩阵归一化,

 

imgproc组件:

1.图像滤波:尽量保留图像图像细节特征的条件下对目标图像的噪声压制

线性滤波:方框滤波(参数=true为均值滤波,否则滤波器为1,boxFilter),均值滤波(取核平均值blur),高斯滤波(二维高斯函数GaussianBlur)

非线性滤波:中值滤波(核像素邻域灰度值来替代像素值灰度值,5Time均值滤波,噪声不影响输出medianBlur)去除脉冲噪声、椒盐噪声的同时保留图像的边缘细节。双边滤波结合图像的空间邻近度和像素值相似度的一种折射出理(定义域核减去值域核bilateralFilter)。

腐蚀和膨胀是一组相反的操作。功能:消除噪音、分割独立图像元素,在图中连接join相邻的元素,寻找图像中的明显的极大值区域或极小值区域,求出图像的梯度。

      膨胀:膨胀就是求局部核内局部最大值的操作。dilate函数

      腐蚀:腐蚀就是求局部核内局部最小值的操作。erode函数

形态学滤波:开运算、闭运算、形态学梯度、顶帽、黑帽。使用morephologxEx(),第三个参数int表示形态学运算类型。

      开运算:先腐蚀后膨胀,消除小物体在纤细处分离物体。

      闭运算:先膨胀后腐蚀,排除小型黑洞。

      形态学梯度:膨胀图与腐蚀图之差。保留物体的边缘轮廓。

      顶帽运算:礼帽运算,原图与开运算结果图之差。

      黑帽:闭运算的结果图与原图之差。

漫水填充:选中区域替换成指定的颜色。floodFill函数

图像金字塔与图片伸缩:

       resize函数,完成对图像的伸缩。向上采集并模糊一张图片,放大一张图片。

       pyrUp(),pyrDown()对图像向上向下采样。向下采集并模糊一张图片。缩小一张图片。

       图像金字塔:一层一层的图像比喻为金字塔,层级越高图像越小,分辨率越低。高斯金字塔,拉普拉斯金字塔。

阈值化:最简单的图像分割方法。固定阈值Threshold()或者compare()。自适应阈值adaptiveThreshold。

 

图形变换:

        边缘检测:Canny算子(不带方向)、Sobel算子、Laplacian算子、Scharr算子

        边缘检测步骤:滤波(常见高斯滤波)->增强)(有显著变化的点凸显出来)->检测(阈值化)

        边缘检测【评价标准低】:低错误率、高定位性、最小响应

        Canny边缘检测步骤:

                  消除噪音:高斯滤波器卷积

                   计算梯度幅值方向:Sobel-运用x和y方向的卷积阵列、使用公式计算梯度幅值的方向 梯度方向可能取0、45、90、135方向

                  非极大值抑制:排除非边缘像素,保留细线

                   滞后阈值:三种情况讨论

                  Canny边缘检测函数高阶用法:将图像转为灰度,降噪,边缘检测,得到的边缘作为掩码拷贝到原图得到彩色边缘图。

霍夫变换:标准霍夫变换、多尺度霍夫变换、累计概率霍夫变换

多尺度霍夫变换是经典霍夫变换再多尺度下的一个变种,累计霍夫变换是标准霍夫变换算法的一个改进。HoughLines函数调用。

 霍夫圆变化:原霍夫变换为二维坐标下的xy被三维xyr取代。使用霍夫梯度法,步骤:8步

                   1.canny边缘检测  2.计算x和y方向上的Sobel得到梯度 3.得到的梯度每个点在累加器中累加 4.标记非0像素的位置...

                重映射:remap()函数

                仿射变换:warpAffine,getRotationMartrix2D

                 直方图均衡化,equalizeHist()

 

图像轮廓与图像分割修复:

              寻找轮廓:findContours(),源图像为8位单通道图像。输出为点向量集。

              绘制轮廓:drawContours(),与寻找轮廓函数对应,绘制出外部或内部轮廓。

图像分割:

            分水岭算法:两个步骤,排序-淹没,对每个像素的灰度级进行从低到高的排序,然后从低到高实现淹没的过程。

 图像修复:图像修补技术由inpaint函数实现,它可以用来松扫描图片中清除灰尘和划痕,或者从静态图像或视频中去除不需要的物体。

              

           

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值