写一个中值滤波代码
以下是一个基于Python语言的中值滤波代码:
import numpy as np
import cv2
# 读取图像
img = cv2.imread('input.jpg')
# 定义卷积核大小
kernel_size = 3
# 获取图像的行数和列数
rows, cols = img.shape[:2]
# 创建一个空的数组,并将其初始化为0
result = np.zeros((rows, cols, 3), np.uint8)
# 循环遍历图像的每个像素点
for i in range(1, rows - 1):
for j in range(1, cols - 1):
# 提取卷积核大小内的像素点
pixels = img[i-1:i+2, j-1:j+2]
# 将像素值排序,并取中间值作为该像素点的值
result[i, j] = np.median(pixels, axis=(0, 1))
# 显示滤波后的图像
cv2.imshow('Median Filter', result)
cv2.waitKey(0)
该代码使用了OpenCV库,先读取了一张输入图像。然后定义了一个卷积核大小,创建了一个空的数组,并循环遍历图像的每个像素点。对于每个像素点,提取卷积核大小内的像素点,并将像素值排序,取中间值作为该像素点的值。最后,将滤波后的图像显示出来。
原文地址: https://www.cveoy.top/t/topic/bs0G 著作权归作者所有。请勿转载和采集!