0
点赞
收藏
分享

微信扫一扫

滤波器设计实验(计算机视觉)中值滤波均值滤波

googlefrank 2022-04-07 阅读 51

一、实验目的

通过python 语言编程设计不同的滤波器(中值滤波和均值滤波),对图像进行滤波处理。促进学生理解滤波器的原理,培养学生的编程能力。

二、实验硬、软件环境

笔记本电脑、windows10系统,Visual Studio Code编辑器,opencv视觉库,numpy库, matplolib库。

三、实验内容及步骤

(一)实验内容 

使用python编程,设计滤波器对图像进行平滑处理。

(二)步骤

1. 首先给图像加一点噪声。

给图像加噪声保存本地(核心代码):

img = cv2.imread("xiao.jpg")

rows, cols, chn =img.shape

img=cv2.resize(img,(int(cols/2),int(rows/2)))

img_noise=img

rows, cols, chn = img.shape

for i in range(5000):

    x = np.random.randint(0, rows)

    y = np.random.randint(0, cols)

    img_noise[x, y, :] = 255

cv2.imshow("noise", img_noise)

cv2.imwrite("D:/XiaoStudy/JiSuanJiShiJue/jisuanjishijue/xiao_noise.jpg", img_noise)

噪声后图像:      

2.设计中值滤波器实现对图像的平滑处理,滤波器大小分别为3*35*57*7.

中值滤波器3*3result = cv2.medianBlur(img, 3)

中值滤波器5*5result = cv2.medianBlur(img, 5)

中值滤波器7*7result = cv2.medianBlur(img, 7)

3. 设计均值滤波器实现图像的平滑处理,3*35*57*7.

均值滤波器3*3result = cv2.blur(img,(3, 3))

均值滤波器5*5result = cv2.blur(img,(5, 5))

均值滤波器7*7result = cv2.blur(img,(7, 7))

4. 保存平滑后的图像到文件夹中。

 

附代码test.py:

import cv2

import numpy as np

import matplotlib.pyplot as plt

###读取图片

img = cv2.imread("xiao_noise.jpg")

source = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

img= source

# 均值滤波

#result = cv2.blur(img,(7, 7)) #可以更改核的大小

#中值滤波

result = cv2.medianBlur(img, 3) #可以更改核的大小

# 显示图片

titles = ['Source Image', 'medianBlur Image (3, 3)']

images = [img, result]

for i in range(2):

    plt.subplot(1,2, i + 1), plt.imshow(images[i], 'gray')

    plt.title(titles[i])

    plt.xticks([]), plt.yticks([])

plt.show()

举报

相关推荐

0 条评论