Opencv学习笔记三——图像滤波

所需模块与自定义函数

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
def cv_show(name, mat):
    cv2.imshow(name, mat)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

一、均值滤波

均值滤波的特点就是对某个像素点附近的所有点数相加,并求平均数,得到该像素点的值,有利于图像整体的平滑处理。

1.blur

###        函数原型
void cv::blur 	( 	InputArray  	src,
		OutputArray  	dst,
		Size  	ksize,
		Point  	anchor = Point(-1,-1),
		int  	borderType = BORDER_DEFAULT 
	) 	
###        在python中使用	
dst	= cv.blur(src, ksize, dst, anchor, borderType)
src原图像。深度须是CV_8U, CV_16U, CV_16S, CV_32F , CV_64F其中的一种
dst处理后的图像,大小类型须和原图像相同
ksize处理的像素点范围

 2.方框滤波——boxFilter

与blur滤波相似,但选择更为灵活

###        函数原型
void cv::boxFilter 	( 	InputArray  	src,
		OutputArray  	dst,
		int  	ddepth,
		Size  	ksize,
		Point  	anchor = Point(-1,-1),
		bool  	normalize = true,
		int  	borderType = BORDER_DEFAULT 
	) 		
###        在python中使用
dst	= cv.boxFilter(src, ddepth, ksize, dst, anchor, normalize, borderType)
src原图像
dst处理后的图像,大小类型须和原图像相同
ddepth输出图像的深度。置为-1自动调用src.depth()获得
ksize参考的像素点范围(a, b)
normalize取值为True或False,表示是否归一化

注意:ksize参数是一个元组,(a, b)表示参考范围为a × b的范围。

归一化表示将像素点的值相加后是否除以像素点的个数。如果选择不归一化,则处理过程中容易越界。如果选择归一化,则处理结果与blur处理结果相同。

 二、高斯滤波

与均值滤波相比,不同的是高斯滤波对待处理像素点周围的点还赋上了不同的权重,离待处理点越近的权重值越高,反之越低。权值会根据高斯函数的形状来选择。高斯平滑滤波对于那种噪声服从正态分布的抑制特别有效。

###        函数原型
void cv::GaussianBlur 	( 	InputArray  	src,
		OutputArray  	dst,
		Size  	ksize,
		double  	sigmaX,
		double  	sigmaY = 0,
		int  	borderType = BORDER_DEFAULT 
	) 		
###        在python中使用
dst	= cv2.GaussianBlur(src, ksize, sigmaX, dst, sigmaY, borderType)
src原图像。深度须是CV_8U, CV_16U, CV_16S, CV_32F , CV_64F其中的一种
dst处理后的图像,大小类型须和原图像相同
ksize考的像素点范围。(a, b)。a和b可以不同但是必须是正奇数 ;或者设置成(0,0)使用后面的sigma参数
sigmaX X方向上的高斯核标准偏差。
sigmaY
Y方向上的高斯核标准差。
 

注意:如果 sigmaY 为零,则将其设置为等于 sigmaX;如果sigmaX和sigmaY都是0,这两个值将由ksize.width和ksize.height计算而来。

三、中值滤波——medianBlur

###        函数原型
void cv::medianBlur(InputArray src,
		OutputArray  dst,
		int  ksize 
) 		
###        在Python使用
dst	= cv.medianBlur(src, ksize, dst)
src

原图像,可以是1通道,3通道,4通道的图像;

当ksize是3或者5时,图像的深度必须是CV_8U, CV_16U, or CV_32F,

对于更大的ksize,图像深度只能是CV_8U.

dst处理后的图像,大小类型须和原图像相同
ksize图像处理时的参考线性尺寸,必须是大于1的奇数。for example: 3, 5, 7 ...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值