滤波处理是图像处理中常用的技术之一,用于去除图像中的噪声、平滑图像、边缘检测等。以下是几种常见的滤波处理方法:
1. 均值滤波 (Mean Filtering)
原理:
均值滤波使用一个固定大小的滤波器,在图像上滑动并取周围像素的平均值来替代中心像素值。这有助于减少图像中的高频噪声。
公式:
对于图像上的一个区域,以
I
I
I 表示原始图像,
I
smooth
I_{text{smooth}}
Ismooth表示滤波后的图像,滤波器大小为
n
n
n times n
nn:
I
smooth
(
x
,
y
)
=
1
n
2
∑
i
=
0
n
−
1
∑
j
=
0
n
−
1
I
(
x
+
i
,
y
+
j
)
I_{text{smooth}}(x, y) = frac{1}{n^2} sum_{i=0}^{n-1} sum_{j=0}^{n-1} I(x+i, y+j)
Ismooth(x,y)=n21i=0∑n−1j=0∑n−1I(x+i,y+j)
作用和适用场景:
适用于去除轻度噪声,如盐和胡椒噪声,但可能会导致图像细节丢失。
代码:
import cv2
# 读取图像
img = cv2.imread('input_image.jpg')
# 应用均值滤波
filtered_img = cv2.blur(img, (3, 3)) # 参数 (3, 3) 表示滤波器大小
# 显示原始图像和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Mean Filtered Image', filtered_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2. 高斯滤波 (Gaussian Filtering)
原理:
高斯滤波与均值滤波类似,但是采用了加权平均值,周围像素对中心像素的影响根据距离中心像素的位置以高斯分布加权。这种滤波器更多地保留了图像的细节。
公式:
I
smooth
(
x
,
y
)
=
1
∑
i
=
0
n
−
1
∑
j
=
0
n
−
1
h
服务器托管网
(
i
,
j
)
∑
i
=
0
n
−
1
∑
j
=
0
n
−
1
I
(
x
+
i
,
y
+
j
)
⋅
h
(
i
,
j
)
I_{text{smooth}}(x, y) = frac{1}{sum_{i=0}^{n-1} sum_{j=0}^{n-1} h(i, j)} sum_{i=0}^{n-1} sum_{j=0}^{n-1} I(x+i, y+j) cdot h(i, j)
Ismooth(x,y)=∑i=0n−1∑j=0n−1h(i,j)1i=0∑n−1j=0∑n−1I(x+i,y+j)⋅h(i,j)
其中,
h
(
i
,
j
)
h(i, j)
h(i,j) 是高斯核函数的值。
作用和适用场景:
适用于去除噪声并保留图像细节,常用于图像平滑和预处理。
代码:
import cv2
# 读取图像
img = cv2.imread('input_image.jpg')
# 应用高斯滤波
filtered_img = cv2.GaussianBlur(img, (5, 5), 0) # 参数 (5, 5) 表示滤波器大小,0 表示标准差
# 显示原始图像和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Gaussian Filtered Image', filtered_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3. 中值滤波 (Median Filtering)
原理:
中值滤波采用一个固定大小的滤波器,在图像上滑动并取周围像素的中值来替代中心像素值。对于去除椒盐噪声效果非常好。
作用和适用场景:
适用于去除椒盐噪声或脉冲噪声,能够有效保留图像细节。
代码:
import cv2
# 读取图像
img = cv2.imread('input_image.jpg')
# 应用中值滤波
filtered_img = cv2.medianBlur(img, 5) # 参数 5 表示滤波器大小
# 显示原始图像和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Median Filtered Image', filtered_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
一、实现整体方式介绍 项目中部署在windows服务器上的项目,需要部署负载均衡,本来想用nginx来配置的,奈何iis上有几个项目,把80端口和443端口占用了,nginx就用不了了(因为通过域名访问的,必须要用80和443端口),只能通过IIS的方式实现了…