实验二A 图像的空域(源代码一站式复制粘贴)

news2025/1/20 1:48:42

实验二A 图像的空域

  • 一、实验目的
  • 二、实验原理
  • 三、实验内容与要求
  • 四、实验的具体实现

一、实验目的

1.掌握图像滤波的基本定义及目的。
2.理解空间域滤波的基本原理及方法。
3.掌握进行图像的空域滤波的方法。

二、实验原理

1.空域增强
空域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。
空域滤波一般分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅里叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。各种空域滤波根据功能主要分为平滑滤波和锐化滤波。图像平滑可用低通滤波器来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小间断连接起来;另一类是消除噪声。图像锐化可用高通滤波器来实现,锐化的目的是为了增强被模糊的细节。结合这两种分类方法,可将空间滤波增强分为四类:线性平滑滤波器(低通),非线性平滑滤波器(低通),线性锐化滤波器(高通),非线性锐化滤波器(高通)。
空间滤波器都是基于模板卷积,其主要工作步骤是:
1)将模板在图像中移动,并将模板中心与图像中某个像素位置重合;
2)将模板上的系数与模板下对应的像素相乘;
3)将所有乘积相加;
4)将和(模板的输出响应)赋给图像中对应模板中心位置的像素。
2.平滑滤波
1)线性平滑滤波器
线性低通平滑滤波器的所有系数都是正数,对的模板来说,最简均值滤波器的是取所有系数为1,为了保持输出图像仍然在原图像的灰度值范围内,模板与像素邻域的乘积都要除以9。
MATLAB 提供了fspecial函数生成滤波时所用的模板,并提供filter2函数用指定的滤波器模板对图像进行运算。MATLAB 提供了一个函数imnoise来给图像增添噪声,请同学们通过MATLAB的help命令自行查阅fspecial、filter2及imnoise的用法。
2)非线性平滑滤波器
中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波器方法类似,但不是计算加权求和,而是把邻域中的图像的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。
MATLAB提供了medfilt2函数来实现中值滤波。
3.锐化滤波器
图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要利用图像锐化技术,使图像的边缘变得清晰。
1)线性锐化滤波器
线性高通滤波器是最常用的线性锐化滤波器。这种滤波器的中心系数都是正的,而周围的系数都是负的,所有的系数之和为0。
2)非线性锐化滤波
邻域平均可以模糊图像,因为平均对应积分,所以利用微分可以锐化图像。图像处理中最常用的微分方法是利用梯度。常用的空域非线性锐化滤波微分算子有sobel算子、prewitt算子、log算子等。

三、实验内容与要求

1.平滑空域滤波
1)读出一幅灰度图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。
2)对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。
3)使用函数imfilter时,分别采用不同的填充方法(或边界选项,如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像。
4)运用for循环,将加有椒盐噪声的图像进行10次、20次均值滤波,查看其特点,显示均值处理后的图像(提示:利用fspecial函数的’average’类型生成均值滤波器)。
5)对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。
6)自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。
2.锐化空域滤波
1)读出一幅灰度图像,采用的拉普拉斯算子对其进行滤波。
2)编写函数w = genlaplacian(n),自动产生任一奇数尺寸的拉普拉斯算子,如5*5的拉普拉斯算子
在这里插入图片描述

3)分别采用55、99、1515和2525大小的拉普拉斯算子对图像进行锐化滤波,并利用式.完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。
4)采用不同的梯度算子对图像进行锐化滤波,并比较其效果。
5)自己设计锐化空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。

四、实验的具体实现

%1.1读出一幅灰度图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。
gray = imread('Fig1022(a).tif');
subplot(1,3,1);
imshow(gray);
title('原灰度图像');

saltGray = imnoise(gray,'salt & pepper');%不写参数的话,就是默认参数
subplot(1,3,2);
imshow(saltGray);
title('椒盐噪声处理');

gaussianGray = imnoise(gray,'gaussian');
subplot(1,3,3);
imshow(gaussianGray);
title('高斯噪声处理');

%1.2对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。

figure(2);
subplot(2,3,1);
imshow(saltGray);
title('椒盐噪声图像');

h = fspecial('average',3);
j1 = filter2(h,saltGray)/255;
subplot(2,3,2);
imshow(j1);
title('3*3均值滤波图');

j2 = medfilt2(saltGray,[3,3]);
subplot(2,3,3);
imshow(j2);
title('3*3中值滤波图');

subplot(2,3,4);
imshow(gaussianGray);
title('高斯噪声图像');

g1 = filter2(h,gaussianGray)/255;
subplot(2,3,5);
imshow(g1);
title('3*3均值滤波图');

g2 = medfilt2(gaussianGray,[3,3]);
subplot(2,3,6);
imshow(g2);
title('3*3中值滤波图');


%1.3使用函数imfilter时,分别采用不同的填充方法(或边界选项,如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像。
figure(3);
subplot(2,3,1)
imshow(gray)
title('原始灰度图像');

h =fspecial('motion',50,45);
Img = imfilter(gray,h);
subplot(2,3,2)
imshow(Img)
title('motion Blurred Image');

rep = imfilter(gray,h,'replicate');
subplot(2,3,3);
imshow(rep);
title('replcate');

B0 =imfilter(gray,h,0);
subplot(2,3,4);
imshow(B0);
title('0-Padding');

sym = imfilter(gray,h,'symmetric');
subplot(2,3,5);
imshow(sym);
title('symmetric');

cir = imfilter(gray,h,'circular');
subplot(2,3,6);
imshow(cir);
title('circular');


%1.4运用for循环,将加有椒盐噪声的图像进行10次、20次均值滤波,查看其特点,显示均值处理后的图像(提示:利用fspecial函数的’average’类型生成均值滤波器)。
figure(4);
subplot(1,3,1);
imshow(saltGray);
title('椒盐噪声图');
h = fspecial('average');
j3 = imfilter(saltGray,h);
for i=1:9
    j3 = imfilter(j3,h);
end
subplot(1,3,2);
imshow(j3);
title('10次均值滤波');

j4 =imfilter(saltGray,h);

for i=1:19
    j4 = imfilter(j4,h);
end
subplot(1,3,3);
imshow(j4);
title('20次均值滤波');


%1.5对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。
figure(5);
subplot(1,3,1);
imshow(saltGray);
title('椒盐图像');

subplot(1,3,2);
aver =fspecial('average');
pic =imfilter(saltGray,aver);
imshow(pic);
title('椒盐后均值图像');

subplot(1,3,3);
med=medfilt2(saltGray);
imshow(med);
title('椒盐后中值图像');

%1.6自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。
figure(6);
F=imread('lenna_RGB.tif');
F=rgb2gray(F);
JJ=imnoise(F,'salt & pepper',0.05);
[m,n]=size(JJ);

subplot(1,2,1),imshow(JJ),title('椒盐噪声图');
s=zeros(1,9);
II=JJ;
for i=2:1:m-1
    for j=2:1:n-1
        h=1;
        for p=i-1:1:i+1
            for q=j-1:1:j+1
                s(h)=JJ(p,q);
                h=h+1;
            end
        end
    s=sort(s);
    II(i,j)=s(5);
    end
end
subplot(1,2,2),imshow(II),title('滤波后的图');

%2.1读出一幅灰度图像,采用的拉普拉斯算子对其进行滤波。
figure(7);
gray = imread('Fig1022(a).tif');
gray_double=im2double(gray) %将图像转换为双精度值
w=[1,1,1;
    1,-8,1;
    1,1,1]
k=conv2(gray_double,w,"same");

subplot(1,2,1);      
imshow(gray);
title('灰度图像');
subplot(1,2,2);
imshow(k);
title('滤波处理后的图像');

%2.2编写函数w = genlaplacian(n),自动产生任一奇数尺寸的拉普拉斯算子,如的拉普拉斯算子
num=input('请输入数值:');
W=genlaplacian(num);
display(W);

%2.3分别采用、、和大小的拉普拉斯算子对图像进行锐化滤波,并利用式.完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。
figure(8);
w1=genlaplacian(5);
I1=gray-imfilter(gray,w1,'replicate');
w2=genlaplacian(9);
I2=gray-imfilter(gray,w2,'replicate');
w3=genlaplacian(15);
I3=gray-imfilter(gray,w3,'replicate');
w4=genlaplacian(25);
I4=gray-imfilter(gray,w4,'replicate');
subplot(2,2,1),imshow(I1),title('5*5 lapulasi');
subplot(2,2,2),imshow(I2),title('9*9 lapulasi');
subplot(2,2,3),imshow(I3),title('15*15 lapulasi');
subplot(2,2,4),imshow(I4),title('25*25 lapulasi');

%2.4采用不同的梯度算子对图像进行锐化滤波,并比较其效果。
I=imread('Fig1022(a).tif');
h=fspecial('sobel');
P1=imfilter(I,h);
h=fspecial('prewitt');
P2=imfilter(I,h);

figure(9);
subplot(1,3,1),imshow(I),title('Original Image');
subplot(1,3,2),imshow(P1),title('sobel算子');
subplot(1,3,3),imshow(P2),title('prewitt算子');


%2.5自己设计锐化空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。
F=imread('lenna_RGB.tif');
F=rgb2gray(F);
h=fspecial('sobel');
h1=h'*0.5;
h2=h';
h3=h'*1.5;
F1=imfilter(F,h1);
F2=imfilter(F,h2);
F3=imfilter(F,h3);
figure(11)
subplot(2,2,1),imshow(F),title('原始灰度图像');
subplot(2,2,2),imshow(F1),title('Vertical filter1');
subplot(2,2,3),imshow(F2),title('Vertical filter2');
subplot(2,2,4),imshow(F3),title('Vertical filter3');


function w =genlaplacian(n)
    w=ones(n);
    x=fix(n/2)+1;
    w(x,x)=-(n*n-1);
end


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阳哥JUC并发编程之AQS后篇全网最详细源码笔记

文章目录AQS后序课程笔记AQS源码ReentryLock锁的原理分析公平锁以及非公平锁源码详解Aquire方法调用原码流程分析第一步、tryAquire第二步、addwrite第三步:aquireQueuedAQS释放锁的过程第一步、释放锁第二步进入aquireQueueAQS异常情况下走Cancel流程分析第一种队尾…

ECharts项目实战:全球GDP数据可视化

【课程简介】 可视化是前端里一个几乎可以不用写网页,但又发展得非常好的方向。在互联网产品里,无论是C端中常见的双十一购物节可视化大屏,还是B端的企业中后台管理系统都离不开可视化。国家大力推动的智慧城市、智慧社区中也有很多可视化的…

对于DDoS攻击防御有哪些误区?

​  DDoS攻击是属于常见网络攻击之一,也是一种较难防御的网络攻击。它的特点就是易于启动、难防御、有害、难跟踪等。因此DDoS攻击也是众多站长最怕遇见的网络攻击。那么大家在使用海外服务器时,会有哪些DDoS攻击防御的误区呢? 1、防御全部DDoS攻击 防…

CSS -- 09. 移动WEB开发之flex布局

文章目录移动WEB开发之flex布局1 flex布局原理2 常见的父项属性2.1 设置主轴方向 flex-direction2.2 设置主轴上的子元素排列方式 justify-content2.3 设置元素是否换行 flex-wrap2.4 设置侧轴上的子元素的排列方式(单行) align-items2.5 设置侧轴上的子…

【矩阵论】6.范数理论——基本概念——矩阵范数生成向量范数谱范不等式

6.1.3 矩阵范数产生向量范数 CnnC^{n\times n}Cnn 上任一矩阵范数 ∥∙∥\Vert \bullet\Vert∥∙∥ 都产生一个向量范数 φ(X)∥X∥V\varphi(X)\Vert X\Vert_Vφ(X)∥X∥V​ 矩阵范数与向量范数的相容性:φ(Ax)≤∥A∥φ(x)\varphi(Ax)\le \Vert A\Vert\varphi(x)φ…

MySQL SSL安全解读

安全一直是不可不重视的问题。目前MySQL这方面应大方向上技术手段都具备。如:网络链接,权限控制,key秘钥认证,数据加密脱敏 等方式。综合考虑,虽然很多环境无法所有这些安全策略全部应用上,但在可控范围内尽…

【C语言数据结构(基础版)】第五站:树和二叉树

目录 一、树的概念及结构 1.树的概念 2.树的表示 3.树在实际中的应用 二、二叉树概念及结构 1.概念 2.特殊的二叉树 3.二叉树的性质 4.二叉树的存储结构 (1)顺序存储 (2)链式存储 三、二叉树链式结构的实现 1.二叉树的…

Mysql的MVCC知多少(隐藏字段,undolog版本链和ReadView)

文章目录前言一、什么是MVCC二、快照读与当前读三、4种隔离级别与MVCC四、MVCC实现4.1 隐藏字段和undolog版本链4.2 ReadView五、说明前言 其实自己之前对MVCC知之甚少,总觉得是一块很难啃的骨头,有点内惧,但当你真的掌握之后,就…

Fastadmin ThinkPHP5 宝塔环境 下Redis的使用教程

本篇为学习参考,不喜勿喷 此为宝塔windows环境下 1.首先在宝塔的安装面板,找到redis,点击安装。 2.安装完redis后,点击设置, 设置个密码(ps:留空代表没有设置密码) 3.php环境安装redis扩展(ps:安装redis扩…

Linux学习笔记——Linux用户和权限管控

03、Linux用户和权限管控 3.1、认知root 用户 3.1.1、root用户(超级管理员) 1、无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 在Linux系统中,拥有最大权限的账户名为:root(超级管理员&#x…

赛狐ERP运营篇 | 店铺管理数智化 ,风险规避更有效!

亚马逊卖家在运营的当中会遇到以下这些问题: 1、工作重复度高,每天浪费大量的时间整理数据报表。 2、数据分析指标单一,无法掌握全局数据指标,综合分析Listing。 3、熬夜调广告,无法精准调整广告预算、竞价。 4、运…

2023年入职/转行网络安全,该如何规划?

前言 前段时间,知名机构麦可思研究院发布了 《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,其中,信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景,想必无需我多言,作为…

c盘扩展卷选项是灰的怎么办?win10系统c盘扩展卷灰色

在Windows自带的磁盘管理工具中,用户想要对C盘进行扩容,c盘扩展卷选项是灰的怎么办? 那么,在本文中,易我小编将为您解答c盘分区扩展灰色的相关知识,帮你用户高效快捷地拓展C盘。 一、c盘分区扩展灰色的原因…

Android入门第52天-在SharedPreference中使用加密

简介 在上一篇中,我们讲了SharedPreference的使用。但是那不是一个生产场景。特别是我们举了一个例子,存放登录信息的例子。这个例子里用户的密码没有加密,比如说在真实的实际生产环境里用户的一些敏感信息或者说是像:用户四要素…

磁矢位的引入 工程电磁场 P19

首先我们有恒定磁场的两个方程 为了更方便解决问题,我们引入磁矢位 由此我们可以得到 我们可以得到 我们要确定A,则既需要知道旋度,我们还需要知道散度 如果是均匀媒质,是常数 我们可以得到 我们进行展开可以得到 我们要知道…

索引的底层实现及应用和失效场景

简介 合适的索引能让查询语句性能得到极大的优化,它只是优化业务的一种方式,不能为了建立索引而建立索引。 索引是什么? 索引是一种为了快速查找数据的数据结构,是帮助数据库快速获取数据的 排好序的数据结构 (BTree)。 索引的好…

鸿翼医药备份解决方案:守护医疗数据 携手共克时艰

新冠疫情期间,CT检查成为了明确诊断的重要手段,医学影像科迎来了检测人次的高峰。随着大量的医学影像数据的产生,影像数据占据了医疗数据总数的80-85%,占据了大量的系统存储空间。 我国医学影像数据的年增长率大约为30-40%&#x…

容器云的双活与灾备技术

在多中心多云环境下,可将容器云部署为多活和灾备模式,通过全局负载均衡器实现应用的多中心多活与灾备。容器应用跨数据中心的双活,是将一个应用的不同副本部署到不同的数据中心,如图 1 所示的 Database 应用。 图1 Database应用双…

腾讯天美Java程序员月均20万!掌握这个后,也太香了....

最近在知乎上看到了这样一个热门问答 ( 图源自知乎,侵删) 还附带了一张收入证明,看完后老夫直呼:我滴乖乖!太刺激了! 虽然这样的高收入只是少数,就像网友说的,不能看做是…

口罩形势下的医院财务管理

过去大多数年轻人一年甚至几年都不需要去医院,但是近三年的口罩带给人们的不便,使得医院一号难求,在这种新的形势下,医院财务管理也成为重要的改革对象财务管理是医院经济工作的核心。 医院所有的经营决策都必须以医院财务核算为…