图像降噪处理——(最大值、最小值、均值滤波)

文章目录

  • 一、最大值(max)滤波器
  • 二、最小值(min)滤波器
  • 二、均值滤波器
  • 二、代码实现、效果
    • 最大值滤波器
    • 最小值滤波器
    • 均值滤波


一、最大值(max)滤波器

在这里插入图片描述

二、最小值(min)滤波器

在这里插入图片描述

二、均值滤波器

在这里插入图片描述

二、代码实现、效果

最大值滤波器

import cv2
import numpy as np
import copyimage_data = cv2.imread('pepperNoiseImg.jpg')
# 使用3*3的矩形框取值
img0 = copy.copy(image_data)
for n in range(1,image_data.shape[0]-1):for m in range(1,image_data.shape[1]-1):for k in range(image_data.shape[2]):a = img0[n-1:n+2, m-1:m+2,k]image_data[n,m,k] = np.max(a)cv2.namedWindow("img",0)
cv2.namedWindow('img', cv2.WINDOW_KEEPRATIO)
cv2.imshow('img',np.hstack([img0,image_data]))
cv2.waitKey(0)

在这里插入图片描述

最小值滤波器

import cv2
import numpy as np
import copyimage_data = cv2.imread('saltNoiseImg.jpg')
# 使用3*3的矩形框取值
img0 = copy.copy(image_data)
for n in range(1,image_data.shape[0]-2):for m in range(1,image_data.shape[1]-2):for k in range(image_data.shape[2]):a = img0[n-1:n+2, m-1:m+2,k]image_data[n,m,k] = np.min(a)# print(image_data[n,m,k],img0[n,m,k])cv2.namedWindow("img",0)
cv2.namedWindow('img', cv2.WINDOW_KEEPRATIO)
cv2.imshow('img',np.hstack([img0,image_data]))
cv2.waitKey(0)

在这里插入图片描述

均值滤波

import cv2
import numpy as np
import copyimage_data = cv2.imread('gaussianNoiseImg.jpg')
# 使用3*3的矩形框取值
img0 = copy.copy(image_data)
for n in range(1,image_data.shape[0]-1):for m in range(1,image_data.shape[1]-1):for k in range(image_data.shape[2]):a = img0[n-1:n+2, m-1:m+2,k]max = np.max(a)min = np.min(a)image_data[n,m,k] = int(max/2) + int(min/2)#会出现灰度值超255的情况,需要先对其取整# print(image_data[n,m,k],img0[n,m,k])cv2.namedWindow("img",0)
cv2.namedWindow('img', cv2.WINDOW_KEEPRATIO)
cv2.imshow('img',np.hstack([img0,image_data]))
cv2.waitKey(0)

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部