opencv滤波与卷积

 

图像形态学

膨胀和腐蚀

形态学腐蚀(erode):四边形核覆盖范围内取最小值
形态学膨胀(dilate):四边形核覆盖范围内取最大值

腐蚀效果:明亮区域被隔离,收缩
膨胀效果:明亮区域被扩张,联通

图像的形态学操作一般在阙值化后的布尔图像上进行

通用形态学函数

只处理二值对象时基本的腐蚀核膨胀足够。
但需要对灰度图或者彩色图进行处理时,通过cv::morphologyEx()实现其他操作

开操作和闭操作

开操作:先腐蚀再膨胀,常用于对二值图像中的区域进行计数
闭操作:先膨胀再腐蚀,用于复杂连通分支算法中减少无用或噪声驱动的片段

对连通分支,先进行腐蚀或闭操作消除噪声,再通过开操作连接相互靠近的大型区域

对非布尔型图像进行形态学操作时,闭操作最明显的效果时消除值小于邻域内的点的孤立异常值,而开操作消除的是大于邻域内点的孤立异常值

开操作和闭操作是iterations参数:两次闭操作是膨胀-膨胀-腐蚀-腐蚀

形态学梯度

梯度操作结果是膨胀操作减去腐蚀操作,产生源图像的边缘

顶帽和黑帽

顶帽:用源图像减去开操作后的图像,显示与其邻域相比更亮的部分
黑帽:用闭操作后的图像减去源图像,显示与其邻域相比更暗的部分

自定义核

cv::getStructuringElement()

用任意线性滤波器做卷积

可分核:一个可分核可以理解成两个一维核,先调用x内核,再调用y内核,提高效率

常见图像变换

卷积的变换是局部的,可以改变整个图像
图像变换不会仅由周围少量像素决定

拉伸,收缩,扭曲和旋转

调整大小带来像素如何插值和合并的问题

均匀调整

cv::resize()

插值方法:逐个浏览目标图像的每个像素,找到填充目标像素需要的源像素,几乎都在分数位置,所以要在内插源像素

写两句?