我的OpenCV学习笔记(10):空域滤波之锐化滤波器
2012-05-01 13:03
465 查看
锐化的作用是加强图像的边沿和轮廓,通常也成为高通滤波器:
模板一般设计为中心处的值为正,外围的值为负(总系数之和为0):
我们可以看到,虽然增强了边沿,但是图像本身的层次和亮度已经基本丢失,对于那些与模板运算后小于0的数,会将他们自动置0,所以会有大片的黑色。
而我们通常使用的,是高增益滤波器,他在增强边沿、细节的同时,不会丢失源图像的低频成份:
高增益 = A原图-低通=(A-1)原图+(原图*低通)=(A-1)原图+高通,所以当A>1时,就会将源图像的一部分加入到高通滤波的结果中。
对于3*3的模板,正中间的数kernel(1,1)= 9A-1;其他数为-1。
程序只改动一行:
结果差异就很明显:
模板一般设计为中心处的值为正,外围的值为负(总系数之和为0):
int main() { //源图像 Mat scr = imread("D:/picture/img.tif"); Mat rst; imshow("原图像",scr); Mat kernel(3,3,CV_32F,Scalar(-1)); // 分配像素置 kernel.at<float>(1,1) = 8; filter2D(scr,rst,scr.depth(),kernel); imshow("锐化结果",rst); waitKey(0); return 0; }
我们可以看到,虽然增强了边沿,但是图像本身的层次和亮度已经基本丢失,对于那些与模板运算后小于0的数,会将他们自动置0,所以会有大片的黑色。
而我们通常使用的,是高增益滤波器,他在增强边沿、细节的同时,不会丢失源图像的低频成份:
高增益 = A原图-低通=(A-1)原图+(原图*低通)=(A-1)原图+高通,所以当A>1时,就会将源图像的一部分加入到高通滤波的结果中。
对于3*3的模板,正中间的数kernel(1,1)= 9A-1;其他数为-1。
程序只改动一行:
kernel.at<float>(1,1) = 8.9;
结果差异就很明显:
相关文章推荐
- 我的OpenCV学习笔记(八):空域滤波之均值滤波
- 我的OpenCV学习笔记(1):空域滤波之中值滤波
- 我的OpenCV学习笔记(九):空域滤波之中值滤波
- opencv3.0学习笔记【10/14】各种滤波函数
- OpenCV for Ios 学习笔记(10)-标记检测总结
- OpenCV中滤波器学习笔记(一)--CvSepFilter
- 我的OpenCV学习笔记(17):利用形态学学滤波检测边沿和角点
- OpenCV学习笔记(6):滤波filter2D()
- opencv学习笔记(3) 锐化图像 邻域操作 ROI
- Opencv学习笔记(四)--图像处理平滑,锐化操作
- OpenCV学习笔记(十一)图像导向滤波
- Opencv2系列学习笔记8(图像滤波)
- OpenCv学习笔记——2014_10_8
- 我的OpenCV学习笔记(三):利用操作像素完成简单的图像处理:加入椒盐噪声、图像翻转、改变对比度、图像锐化
- OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
- OpenCV 2 学习笔记(8): 利用邻域处理图像与简单的算术图像处理算法:图像滤波与加权和
- OpenCV学习笔记(九):线性滤波:方框滤波、均值滤波、高斯滤波
- opencv3.0学习笔记【10/14】contrast、brught调节
- opencv学习笔记10:机器学习