图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。

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

@[TOC](利用matlab自带均值滤波器的代码,分别对一幅图像实现3*3,5*5,7*7,9*9的均值滤波,并对实验结果进行分析。)

@[TOC](分别给干净图像添加高斯和椒盐噪声,然后进行均值滤波、高斯滤波和中值滤波,并对实现结果进行分析。)

@[TOC](自编均值滤波器对一幅图像实现填充后,并完成3*3,5*5,7*7,9*9,11*11的均值滤波并对实验结果进行分析。)

题目一:

1、题目详情:利用matlab自带均值滤波器的代码,分别对一幅图像实现3*3,5*5,7*7,9*9的均值滤波,并对实验结果进行分析。

2、代码: 

% 读入图像
Image = imread('C:\Users\HUAWEI\Desktop\A计协\1大三重点\数字图像处理\数字图像处理第二次上机\lena.bmp');% 设置均值滤波
H3 = fspecial('average',[3,3]);
H5 = fspecial('average',[5,5]);
H7 = fspecial('average',[7,7]);
H9 = fspecial('average',[9,9]);% 利用滤波对图像进行处理
r3 = imfilter(Image,H3);
r5 = imfilter(Image,H5);
r7 = imfilter(Image,H7);
r9 = imfilter(Image,H9);% 展示结果
subplot(2,3,1);imshow(Image);title('原图');
subplot(2,3,2);imshow(r3);title('3*3均值滤波结果');
subplot(2,3,3);imshow(r5);title('5*5均值滤波结果');
subplot(2,3,4);imshow(r7);title('7*7均值滤波结果');
subplot(2,3,5);imshow(r9);title('9*9均值滤波结果');

3、运行结果 :

4、结论分析:均值滤波半径越大,处理结果越模糊。

题目二:

1、题目详情:分别给干净图像添加高斯和椒盐噪声,然后进行均值滤波、高斯滤波和中值滤波,并对实现结果进行分析。

2、代码:

% 读入图像
Image = imread('C:\Users\HUAWEI\Desktop\A计协\1大三重点\数字图像处理\数字图像处理第二次上机\lena.bmp');% 给原图加入高斯噪声
GaussainI = imnoise(Image,'gaussian');% 给原图加入椒盐噪声
SaltPepperI = imnoise(Image,'salt & pepper');% 设置均值滤波
aveFilter3 = fspecial('average',[3,3]);% 设置高斯滤波
gausFilter3 = fspecial('gaussian',[3,3],0.8);tempG=rgb2gray(GaussainI);  %灰度处理,灰度处理后的图像是二维矩阵
tempSP=rgb2gray(SaltPepperI);% 用均值滤波对高斯噪声图像进行处理
GJ = imfilter(GaussainI,aveFilter3);% 用高斯滤波对高斯噪声图像进行处理
GG = imfilter(GaussainI,gausFilter3,'conv');% 用中值滤波对高斯图像进行处理
GM = medfilt2(tempG,[3,3]);% 用均值滤波对椒盐噪声图像进行处理
SPJ = imfilter(SaltPepperI,aveFilter3);% 用高斯滤波对椒盐噪声图像进行处理
SPG = imfilter(SaltPepperI,gausFilter3,'conv');% 用中值滤波对椒盐噪声图像进行处理
SPM = medfilt2(tempSP,[3,3]);%展示结果
subplot(3,3,1);imshow(Image);title('原图');
subplot(3,3,2);imshow(GaussainI);title('添加高斯噪声后的图像');
subplot(3,3,3);imshow(SaltPepperI);title('添加椒盐噪声后的图像');
subplot(3,3,4);imshow(GJ);title('高斯噪声经均值滤波处理后');
subplot(3,3,5);imshow(GG);title('高斯噪声经高斯滤波处理后');
subplot(3,3,6);imshow(GM);title('高斯噪声经中值滤波处理后');
subplot(3,3,7);imshow(SPJ);title('椒盐噪声经均值滤波处理后');
subplot(3,3,8);imshow(SPG);title('椒盐噪声经高斯滤波处理后');
subplot(3,3,9);imshow(SPM);title('椒盐噪声经中值滤波处理后');

 3、运行结果:

 4、结论分析:含高斯噪声的图像用高斯滤波处理时效果好,含椒盐噪声的图像用中值滤波处理时效果好。

题目三:

1、题目详情:自编均值滤波器对一幅图像实现填充后,并完成3*3,5*5,7*7,9*9,11*11的均值滤波并对实验结果进行分析。

2、代码:

% 读入图像,并进行灰度处理,灰度处理后的图像是二维矩阵
Image = rgb2gray(imread('C:\Users\HUAWEI\Desktop\A计协\1大三重点\数字图像处理\数字图像处理第二次上机\lena.bmp'));% 给图像添加高斯噪声
GaussainI=imnoise(Image,'gaussian');%使用matlab自带的均值滤波对高斯噪声图像进行处理,用于后面与自编均值滤波函数的效果对比
H3 = fspecial('average',[3,3]);
b3 = imfilter(GaussainI,H3);% 获取图像二维矩阵的高和宽
[h,w]=size(GaussainI);% 设置均值滤波处理的半径,半径为1对应3*3均值滤波,半径为2对应5*5均值滤波...
r3 = 1; r5 = 2; r7 = 3; r9 = 4; r11 = 5;% 建新矩阵用于保存处理后的结果
matrix3 = zeros(h,w);
matrix5 = zeros(h,w);
matrix7 = zeros(h,w);
matrix9 = zeros(h,w);
matrix11 = zeros(h,w);% 扩展要被处理的图像,留出充足的处理空间
matrix3Plus=zeros(h+2*r3,w+2*r3);
matrix3Plus(r3+1:h+r3,r3+1:w+r3)=GaussainI;
matrix5Plus = zeros(h+2*r5,w+2*r5);
matrix5Plus(r5+1:h+r5,r5+1:w+r5) = GaussainI;
matrix7Plus = zeros(h+2*r7,w+2*r7);
matrix7Plus(r7+1:h+r7,r7+1:w+r7)=GaussainI;
matrix9Plus = zeros(h+2*r9,w+2*r9);
matrix9Plus(r9+1:h+r9,r9+1:w+r9)=GaussainI;
matrix11Plus = zeros(h+2*r11,w+2*r11);
matrix11Plus(r11+1:h+r11,r11+1:w+r11)=GaussainI;%自编算法实现均值滤波处理
%除开边界,要处理的是2到4
for x=r3+1:h+r3for y=r3+1:w+r3new_r=x-r3;new_c=y-r3;value=0;for i=1:2*r3+1for j=1:2*r3+1 %每一个被处理的点,处理后的值,为该点高斯函数的值乘以该点周围(3*3)范围的加和value=value+(matrix3Plus(new_r+i-1,new_c+j-1));endend%将对应位置的结果保存matrix3(x,y)=value/((r3*2+1)*(r3*2+1));end
endfor x=r5+1:h+r5for y=r5+1:w+r5new_r=x-r5;new_c=y-r5;value=0for i=1:2*r5+1for j=1:2*r5+1value=value+(matrix5Plus(new_r+i-1,new_c+j-1));endendmatrix5(x,y)=value/((r5*2+1)*(r5*2+1));end
endfor x=r5+1:h+r5for y=r5+1:w+r5new_r=x-r5;new_c=y-r5;value=0for i=1:2*r5+1for j=1:2*r5+1value=value+(matrix5Plus(new_r+i-1,new_c+j-1));endendmatrix5(x,y)=value/((r5*2+1)*(r5*2+1));end
endfor x=r7+1:h+r7for y=r7+1:w+r7new_r=x-r7;new_c=y-r7;value=0for i=1:2*r7+1for j=1:2*r7+1value=value+(matrix7Plus(new_r+i-1,new_c+j-1));endendmatrix7(x,y)=value/((r7*2+1)*(r7*2+1));end
endfor x=r9+1:h+r9for y=r9+1:w+r9new_r=x-r9;new_c=y-r9;value=0for i=1:2*r9+1for j=1:2*r9+1value=value+(matrix9Plus(new_r+i-1,new_c+j-1));endendmatrix9(x,y)=value/((r9*2+1)*(r9*2+1));end
endfor x=r11+1:h+r11for y=r11+1:w+r11new_r=x-r11;new_c=y-r11;value=0for i=1:2*r11+1for j=1:2*r11+1value=value+(matrix11Plus(new_r+i-1,new_c+j-1));endendmatrix11(x,y)=value/((r11*2+1)*(r11*2+1));end
end%展示结果
subplot(3,3,1);imshow(Image);title('原图');
subplot(3,3,2);imshow(GaussainI);title('添加高斯噪声后');
subplot(3,3,3);imshow(b3);title('matlab自带均值滤波3*3滤波处理后');
subplot(3,3,4);imshow(uint8(matrix3));title('自编3*3均值滤波处理后');
subplot(3,3,5);imshow(uint8(matrix5));title('自编5*5均值滤波处理后');
subplot(3,3,6);imshow(uint8(matrix7));title('自编7*7均值滤波处理后');
subplot(3,3,7);imshow(uint8(matrix9));title('自编9*9均值滤波处理后');
subplot(3,3,8);imshow(uint8(matrix11));title('自编11*11均值滤波处理后');

3、运行结果: 

4、结论分析:自编均值滤波和matlab均值滤波函数对噪声的处理效果可达到一致,滤波使用的邻域半径越大,边缘模糊越厉害。


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

相关文章

MATLAB几何均值滤波

% 几何均值滤波 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 im imread(brain.bmp); % 原图像 im imnoise(im,gaussian,0,1e-3); % 原图像 白噪声im1 geometry_fspecial(…

Matlab 均值滤波与中值滤波

%%以下是本人在学习中的个人理解,如有错误请指出 所谓的滤波就是一个系数矩阵(也称为模板,滤波器,滤波模板,核,掩模或者窗口),然后用这个模板对应图像矩阵(填充0后的图像…

matlab均值滤波,中值滤波

滤波核33的均值滤波。 Fimread(D:\Desktop\66.png); Frgb2gray(F); fdouble(F); [row,col]size(f); f1zeros(row,col);for i2:row-1for j2:col-1fx[f(i-1,j-1),f(i-1,j),f(i-1,j1),f(i,j-1),f(i,j),f(i,j1),f(i1,j-1),f(i1,j),f(i1,j1)];f1(i,j)sum(fx,all)/9/256; end end fi…

matlab均值滤波实现

一、噪声添加 椒盐噪声: I_noisedouble(imnoise(I,salt & pepper,0.02));%后面0.02为参数高斯噪声: I_noisedouble(imnoise(I,gaussian,0.02));二、均值滤波原理 主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。…

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…