数字图像处理实验四图像频域增强

一、实验目的

(1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法。

(2)熟练掌握低通、高通、带通、同态滤波器的使用方法,明确不同性质的滤波器对图像的影响和作用。

二、实验内容

(1)选择合适的灰度图像,添加随机噪声

(2)对图像进行低通滤波,观察滤波效果

(3)选择一灰度图像,进行高通滤波,观察滤波效果

(4)选择合适的灰度图像,进行带通滤波,观察滤波效果

(5)选择合适的数字图像,进行同态滤波,观察滤波效果

三、实验代码及结果、分析

(1)选择合适的灰度图像,添加随机噪声

  • 代码:

I=imread('E:\大三课件\大三下\数字图像处理\实验\实验四\shiyan4.jpg');

I1=rgb2gray(I);

I2=imnoise(I1,'gaussian',0.03);       %加均值为0,方差为0.03的高斯噪声

I3=double(I2);

fft_I=fft2(I2);         % 二维离散傅立叶变换

shift_I=fftshift(fft_I);    % 直流分量移到频谱中心

[M,N]=size(shift_I);

m=floor(M/2);

n=floor(N/2);

figure(1)

subplot(1,3,1),imshow(I),title('原图像');

subplot(1,3,2),imshow(I1),title('灰度图像');

subplot(1,3,3),imshow(I2),title('加入高斯噪声');      %显示有高斯噪声图像

  • 结果:

  • 分析:
  1. 用imnoise()函数给图像添加噪声,简单的噪声有以下5种类型:’gaussian’(高斯白噪声),‘localvar’ (与图象灰度值有关的零均值高斯白噪声),’poisson’(泊松噪声), ‘salt & pepper’(椒盐噪声)、’speckle’(斑点噪声)。本题中加入高斯噪声

(2)选择一灰度图像,进行通滤波,观察滤波效果

  • 代码

%低通滤波

level=4;%2级巴特沃斯滤波器 2时接近高斯,5时接近理想,但是数值更大时会有模糊效应

d1=20;

d2=50;%截止半径

d3=300;

%巴特沃斯低通滤波

for i=1:M

    for j=1:N

       d=sqrt((i-m)^2+(j-n)^2);

       h11=1/(1+0.414*(d/d1)^(2*level));

       h12=1/(1+0.414*(d/d2)^(2*level));

       h13=1/(1+0.414*(d/d3)^(2*level));

      result11(i,j)=h11*shift_I(i,j);

      result12(i,j)=h12*shift_I(i,j);

      result13(i,j)=h13*shift_I(i,j);

    end

end

result111=uint8(real(ifft2(ifftshift(result11))));

result112=uint8(real(ifft2(ifftshift(result12))));

result113=uint8(real(ifft2(ifftshift(result13))));

%高斯低通滤波

for i=1:M

    for j=1:N

       d=sqrt((i-m)^2+(j-n)^2);

       h21=exp(-1/2*(d^2/d1^2));

       h22=exp(-1/2*(d^2/d2^2));

       h23=exp(-1/2*(d^2/d3^2));

       result21(i,j)=h21*shift_I(i,j);

       result22(i,j)=h22*shift_I(i,j);

       result23(i,j)=h23*shift_I(i,j);

    end

end

result121=uint8(real(ifft2(ifftshift(result21))));

result122=uint8(real(ifft2(ifftshift(result22))));

result123=uint8(real(ifft2(ifftshift(result23))));

figure(2)

subplot(2,3,1),imshow(result111),title('巴特沃斯低通滤波d=20');

subplot(2,3,2),imshow(result112),title('巴特沃斯低通滤波d=50');

subplot(2,3,3),imshow(result113),title('巴特沃斯低通滤波d=300');        

subplot(2,3,4),imshow(result121),title('高斯低通滤波d=20');

subplot(2,3,5),imshow(result122),title('高斯低通滤波d=50');

subplot(2,3,6),imshow(result123),title('高斯低通滤波d=300');       

  • 结果:

  • 分析:

     1.巴特沃斯低通滤波器的传递函数为:h=1/(1+0.414*(d/d0)^(2*level));

     高斯低通滤波器的传递函数为 h=exp(-1/2*(d^2/d0^2));

d0为截止半径,level巴特沃斯低通滤波器的阶数

  1. 滤波器的半径不同时,对应的滤波效果也不同,半径越小,平滑效果越明显,但是半径过小,会使得图像变得模糊不清
  2. %巴特沃斯滤波器 2阶时接近高斯,5时接近理想,但是数值更大时会有模糊效应

(3)选择一灰度图像,进行高通滤波,观察滤波效果

  • 代码:

%高通滤波

level=4;%2级巴特沃斯滤波器 2时接近高斯,5时接近理想,但是数值更大时会有模糊效应

d1=2;

d2=4;%截止半径

d3=8;

%巴特沃斯高通滤波

for i=1:M

    for j=1:N

       d=sqrt((i-m)^2+(j-n)^2);

       h11=1/(1+0.414*(d1/d)^(2*level));

       h12=1/(1+0.414*(d2/d)^(2*level));

       h13=1/(1+0.414*(d3/d)^(2*level));

      result11(i,j)=h11*shift_I(i,j);

      result12(i,j)=h12*shift_I(i,j);

      result13(i,j)=h13*shift_I(i,j);

    end

end

result111=uint8(real(ifft2(ifftshift(result11))));

result112=uint8(real(ifft2(ifftshift(result12))));

result113=uint8(real(ifft2(ifftshift(result13))));

%高斯高通滤波

for i=1:M

    for j=1:N

       d=sqrt((i-m)^2+(j-n)^2);

       h21=1-exp(-1/2*(d^2/d1^2));

       h22=1-exp(-1/2*(d^2/d2^2));

       h23=1-exp(-1/2*(d^2/d3^2));

       result21(i,j)=h21*shift_I(i,j);

       result22(i,j)=h22*shift_I(i,j);

       result23(i,j)=h23*shift_I(i,j);

    end

end

result121=uint8(real(ifft2(ifftshift(result21))));

result122=uint8(real(ifft2(ifftshift(result22))));

result123=uint8(real(ifft2(ifftshift(result23))));

figure(1)

subplot(1,3,1),imshow(I),title('原图像');

subplot(1,3,2),imshow(I1),title('灰度图像');

subplot(1,3,3),imshow(I2),title('加入高斯噪声');         %显示有高斯噪声图像

figure(2)

subplot(2,3,1),imshow(result111),title('巴特沃斯高通滤波d=20');

subplot(2,3,2),imshow(result112),title('巴特沃斯高通滤波d=50');

subplot(2,3,3),imshow(result113),title('巴特沃斯高通滤波d=300');        

subplot(2,3,4),imshow(result121),title('高斯高通滤波d=20');

subplot(2,3,5),imshow(result122),title('高斯高通滤波d=50');

subplot(2,3,6),imshow(result123),title('高斯高通滤波d=300');     

  • 结果:

  • 分析:

    1、巴特沃斯高通滤波器的传递函数为:h=1/(1+0.414*(d0/d)^(2*level));

       高斯高通滤波器的传递函数为 h=1-exp(-1/2*(d^2/d0^2));

    2、图像的大部分能量集中在低频分量,高通滤波会将很多低频分量滤除,导致增强图中边缘得到加强,但光滑区域灰度减弱变暗甚至接近黑色

    3、截止半径越大,图像越接近黑色,导致图像的轮廓也不太清晰

4选择合适的灰度图像,进行通滤波,观察滤波效果

  • 代码:

%带通滤波

dl=0.5;

dh=50;%截止半径

for i=1:M

    for j=1:N

       d=sqrt((i-m)^2+(j-n)^2);

        if d<=dl || d>=dh

             h=0;

    else

        h=1;

        end

     result(i,j)=h*shift_I(i,j);

    end

end

result1=uint8(real(ifft2(ifftshift(result))));

figure(2)

subplot(1,2,1),imshow(I2),title('高斯噪声图像');

subplot(1,2,2),imshow(result1),title('带通滤波后图像');

  • 结果:

              

  • 分析:

1、带通滤波器的传递函数为H=1 (dl<d<dh), H=0(d=其他)

2、带通滤波器可增强既不是图像中的高频成分也不是低频成分

 

5)选择合适的灰度图像,进行同态滤波,观察滤波效果

  • 代码:

P = 2*M; Q = 2*N;

I2 = zeros(P,Q);

for i = 1:M

    for j =1:N

        I2(i,j) = I(i,j);  %对图像进行填充

    end

end

I2=log(I2+1);    %取对数

FI=fft2(I2);    %傅里叶变换

rL=1.0;    %rl越靠近1,越亮

rH=1.1;     % 可根据需要效果调整参数 ,rh越大,背景越亮

c=100;       %锐化参数,越大,锐化程度越大

D0=1;  %D0越小,越亮

for u=1:P

    for v=1:Q

        D(u,v)=sqrt(((u-M).^2+(v-N).^2));  %频率域中点(u,v)与频率矩形中心的距离       

        H(u,v)=(rH-rL).*(1-exp(-c.*(D(u,v)^2./D0^2)))+rL; %高斯同态滤波

    end

end

H=ifftshift(H);  %对H做反中心化

I3=ifft2(H.*FI);  %傅里叶逆变换

I4=real(I3);

result =exp(I4(1:M, 1:N))-1;  %截取一部分,,取指数

figure(1)

subplot(1,3,1),imshow(im),title('灰度图像');

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

subplot(1,3,3),imshow(result),title('同态滤波图像');

  • 结果:

  • 分析:

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

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

相关文章

卡耐基梅隆大学专家谈核心技术市场化:「AI 周边相关机遇最大」

来源&#xff1a;ZDnet、机器之能编译 | 张玺摘要&#xff1a;技术市场化之难在哪&#xff1f;创业家最常犯什么错误&#xff1f;每位立志创业的朋友都应该研究下这篇对卡耐基梅隆 (CMU) 大学专家的采访。CMU 是全美技术转移最成功的机构之一&#xff0c;斥巨资帮助全校师生实现…

数字图像处理实验三图像增强

一、实验目的 &#xff08;1&#xff09;了解图像增强的目的及意义&#xff0c;加深对图像增强的 感性认识&#xff0c;巩固所学的图像增强的理论知识和相 关算法。 &#xff08;2&#xff09;熟练掌握直方图均衡化和直方图规定化的计算过 程。 &#xff08;3&#xff09;熟…

matplotlib与seaborn的一些使用

1.plt.plot画线画点 a np.array([[1, 2], [3, 4]]) print(a[:, 0]) plt.plot(a[:, 0], a[:, 1]) plt.show() plt.plot(a[:, 0], a[:, 1], o,colorred) plt.show()&#xff03;添加风格 plt.plot(x,y,colorred,linewidth1.0,linestyle--) #设置x轴范围 plt.xlim((-1,2)) # …

无人驾驶汽车想要“普渡众生”,还要经历15个磨难

来源&#xff1a;Forbes 、网易智能摘要&#xff1a;无人驾驶汽车的未来与电动平衡车的历史有什么关系吗&#xff1f;电动平衡车也曾被预言将彻底改变交通。史蒂夫•乔布斯曾经说&#xff0c;城市将围绕这一设备重新设计&#xff1b;约翰•杜尔说&#xff0c;它将比互联网更大…

SQL的各种使用方法

一、Select语句例子 使用子查询查询employees表中&#xff0c;属于某一部门员工的姓名、职位、工薪、部门编号的信息 提示&#xff1a; 1)、需要关联employees表、departments表 2)、已知的信息为部门名称&#xff0c;部门名称由用户自己给出 按照要求写出SQL语句。 答案及…

正常矩形计算IOU与与NMS,多边形计算IOU

一&#xff0e;计算IOU def intersect(box_a, box_b):max_xy np.minimum(box_a[:, 2:], box_b[2:])min_xy np.maximum(box_a[:, :2], box_b[:2])inter np.clip((max_xy - min_xy), a_min0, a_maxnp.inf)return inter[:, 0] * inter[:, 1]def jaccard_numpy(box_a, box_b):&…

产业互联网受瞩目:互联网主战场从To C转向To B | 企鹅经济学

来源&#xff1a;科技日报摘要&#xff1a;最近&#xff0c;要论在互联网圈最火的词&#xff0c;非“产业互联网”莫属。如今&#xff0c;言必提产业互联网&#xff0c;已成为互联网圈的一种风潮。互联网的“上半场”已接近尾声&#xff0c;“下半场”的序幕正被拉开&#xff0…

json的用法

json格式 JSON格式&#xff1a;http://www.json.org/ python和JSON的关系请参考&#xff1a;http://docs.python.org/library/json.html JSON建构有两种结构&#xff1a; 1. “名称/值”对的集合&#xff08;A collection of name/value pairs&#xff09;。不同的语言中&#…

数据库设计方法

一、延续训练题 假设你是一个小的录影带出租店的老板。你的出租店里面有3000部电影。每部电影都有DVD或VHS录像带号码。对于每部电影&#xff0c;需要知道它的标题和类别&#xff08;如&#xff0c;喜剧&#xff0c;悬疑&#xff0c;剧情&#xff0c;动作&#xff0c;战争&…

谷歌首席科学家:搞研究的痛苦,搞工程的人不懂

来源&#xff1a;量子位作者&#xff1a;Vincent Vanhoucke谷歌首席科学家、谷歌大脑技术负责人Vincent Vanhoucke&#xff08;万努克&#xff09;最近发出的一篇“劝退文”&#xff0c;引发海外科研学者的热议。在这博客中&#xff0c;万努克直言以研究为业&#xff0c;固然令…

L1/L2/smooth_l1_loss/center_loss+Dice Loss+focal loss+各种IOU loss+kl散度

一&#xff0e;L1/L2/smooth_l1_loss/center_loss公式与代码 1.公式 L2公式&#xff1a; smooth_L1公式: 2.三种函数numpy代码实现 import numpy as np import matplotlib.pyplot as plt#y |x| def L1():x np.arange(-2, 2, 0.01)y abs(x)plt.figure()plt.plot(x, y, …

虚拟机中Linux安装Tools

1. 插入光盘后将文件拷贝到常用放置软件的目录 2. 解压文件 3. 然后进入解压后的文件夹里找到安装文件进行安装&#xff08;注意使用root权限安装&#xff09; 4. 安装时也是一个交互的过程 5. 完成安装 转载于:https://www.cnblogs.com/ywj2013/p/3578931.html

世界创新竞争力发展报告:中美日创新产出竞争力居前三

来源&#xff1a;皮书说11月21日&#xff0c;由福建师范大学、中国科学技术交流中心联合攻关&#xff0c;具体由全国经济综合竞争力研究中心福建师范大学分中心组织研究的《世界创新竞争力黄皮书&#xff1a;世界创新竞争力发展报告&#xff08;2011&#xff5e;2017&#xff0…

二分法查找+树

一&#xff0c;查找存在的一个数&#xff0c;该数在列表中唯一 二分法查找是针对有序数据的查找方法&#xff0c;时间复杂度是O(logn)。。 其中 n/2^k1 时&#xff0c;k 的值就是总共缩小的次数。而每一次缩小操作只涉及两个数据的大小比较&#xff0c;所以&#xff0c; 经过了…

Oracle 软件的安装

1、在oracle主页上注册登录 2、下载64位&#xff0c;将我接受许可协议&#xff0c;下载1of2和2of2,并解压到同一个文件夹 3、安装oracle软件 双击database文件夹里面的setup.exe&#xff0c;启动OUI去掉&#xff1a;我希望通过....只安装软件&#xff0c;不创建数据库选择语言…

算法笔试题

一&#xff0c;搜索连通域 M, N list(map(int, input().split(,))) print(M,N) book [] for i in range(M):line list(map(int, input().split(,)))book.append(line) print(book) # MN3 # book[[1, 0, 0], [0, 1, 0], [0, 1, 1]] print(book,book) class Solution:def __i…

Linux之vim编辑器

目录 vim编辑器 vim编辑器指令 命令模式指令 光标相关 移动光标相关 文本操作 底行模式指令 插入模式 vim配置 面试官&#xff1a;小伙子&#xff0c;你是用什么环境编写代码的&#xff1f; 小明&#xff1a;vs2019 面试官&#xff1a;小伙子&#xff0c;你是用什么环…

Verilog HDL设计实现m序列+选择器

设计m序列发生器&#xff0c;其特征方程为&#xff0c;输出数字序列信号m_sequence码速率为10Mbps&#xff1b;设计串行转并行电路&#xff0c;每4位m序列并行输出&#xff0c;先输入的串行数据位于并行输出数据的高位。设计测试程序&#xff0c;进行功能仿真&#xff0c;将Ver…

深度分享:世界顶级神经科学家王小勤教授CCL 2018主旨报告(PPT全文,经报告人同意发布)...

报告人&#xff1a;王小勤 清华大学脑与智能实验室主任来源&#xff1a;TsinghuaNLP公众号人类的语言处理系统起始于听觉系统&#xff0c;大脑通过听觉系统来感知自然界多姿多彩的声学环境。在我们日常听见的众多声音中&#xff0c;语音和音乐是我们人类相互交流最为重要的两类…

贪心算法+回溯算法+动态规划

一.贪心算法 1.分饼干问题 #思路:排序加贪心 先让胃口小的孩子满足 class Solution:def findContentChildren(self, g, s):print(g:, g)print(s:, s)g sorted(g)#孩子s sorted(s)#饼干res 0for j in range(len(s)):#遍历饼干 先给胃口小的分配if res<len(g):if g[res]&…