imgproc组件:Image Process,即图像处理模块;
图像滤波;
几何变换;
图像转换;
直方图相关;
结构分析和形状描述;
运动分析和对象跟踪;
特征检测;
目标检测;
一、图像滤波
目的:抽出对象的特征;消除噪声;
平滑滤波:模糊;消除噪声;
OpenCV中的滤波:
1、方框滤波(线性)——BoxBlur(函数:boxFilter())
2、均值滤波(线性)——Blur(函数:Blur())
3、高斯滤波(线性)——GaussianBlur(函数:GaussianBlur());图像的高斯模糊就是图像与正态分布做卷积;
4、中值滤波(非线性)——MediaBlur(函数:mediaBlur)
5、双边滤波(非线性)——bilateraFilter(函数:bilateraFilter);结合图像的空间邻近度和像素值相似度的一种折中处理;保边去噪;
常见线性滤波器:
低通(允许低频通过);
高通(允许高频通过);
带通(某范围通过);
带阻(阻止某范围频率);
全通(全部频率通过);
陷波(阻止一个狭窄频率范围通过);
滤波——滤波函数的滤波操作;
模糊——低通就是模糊;高通就是锐化;
形态学:腐蚀与膨胀
腐蚀与膨胀功能:
1、消除噪声;
2、分割(isolate)出独立的图像元素;
3、存在明显的极大或极小区域;
4、求图像梯度;
腐蚀——erode;核是任意形状和大小;
膨胀——dilate
一般使用getStructuringElement()函数配合使用;
开运算——先腐蚀后膨胀(先e后d)
闭运算——先膨胀后腐蚀(先d后e)
形态学梯度——膨胀图与腐蚀图之差;dilate-erode
顶帽——tophat()函数;原图与开运算图之差;src-open;(大背景小物体时,提取背景)
黑帽——blackhat()函数;闭运算图与原图之差;close-src;
morphologyEx()函数:利用基本的膨胀和腐蚀,来执行更高级的形态学变换;
漫水填充——floodFill
图像金字塔与图像尺寸的缩放
1、resize();
2、pyUp()、pyDown();图像金字塔相关函数;对图像进行向上采样,向下采样;
金字塔的底部是待处理图像的高分辨率的表示;
金字塔的顶部是低分辨率的近似;
高斯金字塔(Gaussianpyramid)——向下采样;
1、对图像的向下采样;
对第i层与高斯核进行卷积;去掉偶数行列,得到第i+1层;
2、对图像的向上采集;
每个方向扩大两倍,以0填充;内核与新图像卷积,获得新增像素的近似值;(丢失信息)
拉普拉斯金字塔(Laplacianpyramid)——向上采样,重建图像;(减少信息丢失)
拉普拉斯金字塔是通过源图像减去先缩小后放大的图像的一系列图像构成的;
尺寸调整:resize()
interpolation插值方式:
1、INTER_NEAREST——最近邻插值
2、INTER_LINEAR——线性插值(默认)(用来放大图像,效率高)
3、INTER_AREA——区域插值(利用像素区域关系的重采样插值)(用来缩小图像)
4、INTER_CUBIC——三次样条插值(超过4*4像素领域内的双三次插值)(用来放大图像,效率低,不推荐)
5、INTER_LANCZOS4——Lanczos插值(超过8*8像素领域的Lanczos插值)
阈值化
基于图像与背景灰度的差异,属于像素级的分割;0——黑色;255——白色
1、固定阈值——Threshold()
2、自适应阈值——adeptiveThreshold()
函数总结