搬运的图像处理中值滤波

import cv2 as cv
import numpy as np
import copy

def original(i, j, k, ksize, img):
    # 找到矩阵坐标
    x1 = y1 = -ksize // 2
    x2 = y2 = ksize + x1
    temp = np.zeros(ksize * ksize)
    count = 0
    # 处理图像
    for m in range(x1, x2):
        for n in range(y1, y2):
            if i + m < 0 or i + m > img.shape[0] - 1 or j + n < 0 or j + n > img.shape[1] - 1:
                temp[count] = img[i, j, k]
            else:
                temp[count] = img[i + m, j + n, k]
            count += 1
    return temp

# 自定义最大值滤波器最小值滤波器
def max_min_functin(ksize, img, flag):
    img0 = copy.copy(img)
    for i in range(0, img.shape[0]):
        for j in range(2, img.shape[1]):
            for k in range(img.shape[2]):
                temp = original(i, j, k, ksize, img0)
                if flag == 0:
                    img[i, j, k] = np.max(temp)
                elif flag == 1:
                    img[i, j, k] = np.min(temp)
    return img

img = cv.imread('C:/Users/jenny/Desktop/Bears.png')
min_img = max_min_functin(3, copy.copy(img),1)
max_img = max_min_functin(3, copy.copy(img),0)
cv.imshow("original", img)
cv.imshow("min_img", min_img)
cv.imshow("max_img", max_img)
cv.waitKey(0)

就这些啦

中值滤波是一种常用的图像处理方法,在MATLAB中也有相应的函数可以实现中值滤波。使用中值滤波可以有效地去除图像中的噪声,同时保持图像的边缘和细节信息。中值滤波的原理很简单,就是通过计算一个像素周围邻域内像素的中值来替代该像素的值。 在MATLAB中,可以使用medfilt2函数来实现中值滤波。该函数的第一个参数是待处理的图像,可以是灰度图像或彩色图像。如果是彩色图像,需要分别对每个通道进行中值滤波。第二个参数是滤波窗口的大小,一般选择一个奇数大小的正方形窗口,例如[3 3]表示3x3的窗口。 下面是一个示例代码,演示了如何在MATLAB中对灰度图像和彩色图像进行中值滤波: ```matlab % 对灰度图像进行中值滤波 image = imread('image.jpg'); filtered_image = medfilt2(image, [3 3]); % 对彩色图像进行中值滤波 color_image = imread('color_image.jpg'); filtered_color_image = color_image; filtered_color_image(:,:,1) = medfilt2(color_image(:,:,1), [3 3]); filtered_color_image(:,:,2) = medfilt2(color_image(:,:,2), [3 3]); filtered_color_image(:,:,3) = medfilt2(color_image(:,:,3), [3 3]); ``` 以上代码分别对灰度图像和彩色图像进行中值滤波,并将结果保存在filtered_image和filtered_color_image变量中。你可以根据自己的需求修改代码中的图像路径和窗口大小。 需要注意的是,中值滤波对于一些特定类型的噪声(如椒盐噪声)效果较好,但对于其他类型的噪声可能效果不佳。在实际应用中,可以根据图像的特点和噪声类型选择合适的滤波方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值