matlab均值滤波实现

article/2025/11/7 11:25:19

一、噪声添加
椒盐噪声:

I_noise=double(imnoise(I,'salt & pepper',0.02));%后面0.02为参数

高斯噪声:

I_noise=double(imnoise(I,'gaussian',0.02));

二、均值滤波原理
主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声。
缺点:容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。

原像素值:
|1|2|3|
|4|5|6|
|7|8|9|

均值后:(123456789去均值为5,放在中心位置,由此可见均值滤波会忽略掉四周的像素值,四周会变得模糊)
| | | |
| |5| |
| | | |

以下代码分别添加了 高斯噪声和椒盐噪声 然后进行均值滤波处理

  1. 对椒盐噪声的各种均值滤波处理
%均值滤波
%椒盐噪声部分
figure(2);
%显示原图
subplot(2,3,1);
imshow(I,[]);%[]自动产生适当的比例显示图像
title('原图');
%添加椒盐信号
subplot(2,3,2);
I_noise=double(imnoise(I,'salt & pepper',0.02));%salt & pepper注意中间的空格 无空格报错
imshow(I_noise,[]);title('椒盐噪声');
%均值滤波
subplot(2,3,3);
I_3=fspecial('average',[3,3]);%3*3均值滤波
I_3=imfilter(I_noise,I_3);
imshow(I_3,[]);title('3*3算数均值滤波');
subplot(2,3,4);
I_=exp(imfilter(log(I_noise),fspecial('average',3)));%算数均值滤波
imshow(I_,[]);title('3*3几何均值滤波');subplot(2,3,5);
Q=-1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆谐波滤波器滤波');subplot(2,3,6);
Q=1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆谐波滤波器滤波')

在这里插入图片描述
2. 对高斯噪声的各种均值滤波处理

%%均值滤波
%高斯噪声部分
clc;clear;
I=imread('1.jpg');
I=im2double(I);
I=rgb2gray(I);
%MappedData = mapminmax(I ,0, 255)
h=figure(1);
%显示原图
subplot(2,3,1);
imshow(I,[]);%[]自动产生适当的比例显示图像
title('原图');
%添加高斯噪声
subplot(2,3,2);
I_noise=double(imnoise(I,'gaussian',0.02));%salt & pepper注意中间的空格 无空格报错
imshow(I_noise,[]);title('高斯噪声');
%均值滤波
subplot(2,3,3);
I_3=fspecial('average',[3,3]);%3*3均值滤波    建立预定义的滤波算子
I_3=imfilter(I_noise,I_3);%(待处理矩阵,滤波器)
imshow(I_3,[]);title('3*3均值滤波');
subplot(2,3,4);
I_=exp(imfilter(log(I_noise),fspecial('average',3)));%算数均值滤波
imshow(I_,[]);title('3*3几何均值滤波');
subplot(2,3,5);
Q=-1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆谐波滤波器滤波');
subplot(2,3,6);
Q=1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=1.5逆谐波滤波器滤波');

在这里插入图片描述

均值滤波方法二:https://wenku.baidu.com/view/bef73431366baf1ffc4ffe4733687e21af45ff14.html

  1. 函数说明
  • imfilter函数:
    功能:对任意类型数组或者图像进行滤波,或者理解为建立一个自定义功能的类型滤波器(个人理解,不知道对否)。
    意义
    imfilter(img,filter);
    img:带处理矩阵
    filter: 滤波器
    其他详解:https://blog.csdn.net/zhuwei0710/article/details/68169317

  • fspecial函数:
    建立预处理的预定义的滤波算子
    https://blog.csdn.net/hustrains/article/details/9153553

  1. 结果分析

    4.1、对高斯噪声图像进行滤波:
    总体来说两个逆谐波均值滤波器的去噪小效果不如均值滤波器滤波的效果。算数均值滤波会使得图像边界变得模糊,而几何均值滤波不会导致此问题。
    原因是:算术均值滤波器的将多个像素的灰度值线性平均,用均值来代替各个像素值,会导致边界图像模糊。采用线性的方法,平均整个窗口范围内的像素值,它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

    4.2、对椒盐噪声图像进行滤波:
    算数均值滤波对椒盐噪声的去除效果较好;Q=-1.5的逆谐波滤波器留下了黑色的胡椒噪声,而Q=1.5的逆谐波滤波器留下了白色的盐噪声。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。
    原理:对于“胡椒”噪声应该采用Q值为正值的滤波器去噪,而用Q值为负值的滤波器对“盐”噪声进行去噪。


http://chatgpt.dhexx.cn/article/g1JSumhJ.shtml

相关文章

MATLAB均值滤波

% 中值滤波 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 [filename ,pathname]… uigetfile({‘.bmp’;.jpg’;},‘选择图片’); % 选择图片路径 str [pathname filename]; % 合成路径文件名 im imr…

MATLAB--数字图像处理 均值滤波

均值滤波 代码: timread(a1.jpg); [m,n,z]size(t); t1imnoise(t,gaussian,0,0.02); imshow(t1),title(加入高斯噪声后) t2t; for i1:m-2 for j1:n-2 t2(i1,j1,:)round(t2(i,j,:)/9t2(i,j1,:)/9t2(i,j2,:)/9t2(i1,j,:)/9t2(i1,j1,:)/9t2(i1,j2,:)/9t2(i2,j,:)/9t2(i2…

均值滤波原理及matlab实现代码

一、基本原理 噪声点像素的灰度与其邻域内像素的灰度显著不同,根据噪声点的这一特性,可以使用邻域均值滤波来降低噪声。   利用一个大小为mn的模板对一幅大小为MN的图像进行均值滤波可以表示为如下公式,其中m=2a+1,n=2b+1:   在实际应用中,可以根据不同需要选择不同…

matlab 均值滤波实现

均值滤波是指用当前像素点周围 N个像素值的均值来代替当前像素值,本质对领域内的矩阵求均值。它通常用于去除图像中高斯噪声。原理示意下图所示: matlab代码实现: clc; clear all; close all;RGB_data imread(G:\picture_deal\matlab_code\mangguo.bmp);%图像读入…

均值滤波(matlab)

**均值滤波:**在图像上对目标像素给一个模板,该模板包括了其周围的临近像素,再用模板中的全体像素的平均值来代替原来像素值。 缺点:均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的…

保护版权,用 Python 为图片添加盲水印

如果你想保护自己的原创图片,那最好的方式就是为图片添加盲水印,盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。今天分享如何用 Python 为…

opencv实现盲水印

主要用于图片版权追溯,用户指纹识别等场景,保证用户版权以及作为防盗反爬关键性法律证据。 opencv环境 windows 解压opencv-3.4.2.tar.gz,项目运行是在VM options中加入库环境-Djava.library.pathD:\opencv3.4.2\opencv\build\java\x64;D:…

盲水印添加,获取接口

添加水印,水印生成,获取水印 一、接口介绍 通过上传原始图片和水印图,生成带有隐性水印图的图片。既保持图片的美观性,又能保证图片的版权防护与追踪。这样便于在不破坏原有图片的情况下,实现版权保护。 二、功能体验 三、特色优…

java 添加盲水印_图片加数字盲水印

本文通过一个的实验,简要介绍频域手段添加数字盲水印的方法,并进一步验证其抗攻击性。在上述实验的基础上,总结躲避数字盲水印的方法。(多图预警) 本文分为五个部分,第一部分综述;第二部分频域数字盲水印制作原理介绍&…

使用 Python 给图片添加水印,其中一种还是隐形的盲水印呢!

文章目录 使用 Pillow 库为图片添加半透明水印使用 blind_watermark 库为图片添加盲水印安装嵌入水印提取水印 如何给图片添加水印呢?在 Python 的世界里,有多种方法可以为图片添加水印。 其中一种方法,可以使用大名鼎鼎 Pillow 库&#xff…

python 3.6 盲水印脚本安装说明

python 3.6 盲水印脚本安装说明 安装盲水印踩了不少坑,所以记录一下。 本机环境: windows10 python3.6 脚本安装地址: BlindWaterMark 下载解压即可 安装脚本的依赖库 opencv-python 4.2.0.34 matplotlib 2.1.1 安装命令: …

信息隐藏-图像盲水印实现

相关知识 目前水印大抵可分为两种,可见和不可见,可见水印大多用来标记或声明版权,或防盗用冒用,但在影院、绘画等场景下,可见性水印会极大影响用户体验,所以产生了盲水印的概念。 盲水印即看不见的水印&am…

Python给图片添加盲水印

文章目录 简介安装初试遇到的坑参考文献 简介 盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。 该库出自阿里巴巴安全团队,强大之处: 解…

Opencv实现盲水印技术(三)——傅里叶变换算法及盲水印实现

前言 之前的文章中,介绍了如何构建Java工程和Java Web工程,本文将简单介绍对傅里叶变换的理解,以及使用opencv实现盲水印。关于傅里叶变换,有篇博文介绍的很详细,链接地址为:看了此文你还不了解傅里叶变换&…

双图+盲水印

1.双图 打开压缩包,发现有两张图片 first1和second.png,使用Stegsolve打开first1.png进行一次异或处理 然后分析选择结合second.png得到 用stegslove对二维码进行运算得到三张二维码 扫描结果是DES 6XaMMbM7 和一长串字符,很显然是des加密&a…

Python 数字图片盲水印

blind-watermark 基于傅里叶变换的数字盲水印 文档: https://BlindWatermark.github.io/blind_watermark/#/zh/Source code: https://github.com/guofei9987/blind_watermark install pip install blind-watermarkFor the current developer version: git clon…

watermark前端js盲水印添加方法

1,引入js <script src"/Public/js/watermark-dom/watermark.js" language"JavaScript"></script> 2,实例化对象 <script language"JavaScript"> //参数详情请参考watermark.js 文件里的说明 window.onload function(){wate…

给你的web页面添加盲水印,附带检盲水印方案

应用场景 在一些敏感系统有的时候我们为了防止别人截图或追溯图片源头是谁发的。我们需要在页面上埋下我们的隐形水印。 开始做 埋水印 github上有很多水印的js插件&#xff0c;download下来一个改一改&#xff0c;源码见最后附录。 改动内容&#xff1a;增加了判断dom被人…

有意思的数字盲水印的简单的实现。

早期大约是10年前从一本数字图像处理上看到过数字水印的概念&#xff0c;觉得确实一种很有意思的东西&#xff0c;那个时候主要就是基于LSB的图像信息的隐藏&#xff0c;这种在空域里的方法有较大的缺陷&#xff0c;鲁棒性是比较差的。随便一个后期的都会造成水印的丢失&#x…

python脚本实现盲水印提取和添加

python脚本实现盲水印提取和添加 首先github上找个BlindWaterMark-master文件下载一下&#xff0c;打开后是我这个样子 在python里面添加两个库&#xff0c;python.exe目录上方输入cmd pip install opencv-python python.exe -m pip install matplotlib新手这里装库的时候&am…