当前位置: 首页 > news >正文

数字图像处理-图像增强(2)

1 实验一

1.1 实验题目

       使用高频强调滤波进行图像增强。

1.2 程序源代码

clc;
clear;
f=imread('timu3.jpg'); %读入图像
subplot(1,2,1);
imshow(f)
title('原始图像')
%高斯高通滤波
I=double(f);
g=fft2(I);
g=fftshift(g);
[M,N]=size(g);%读取图像的长度和宽度
%D0=40,并令 k1=0.5,k2=0.75
D0=40;
m=fix(M/2);n=fix(N/2);
for i=1:M
for j=1:N
D=sqrt((i-m)^2+(j-n)^2);%计算两点之间的距离
H=exp(-(D.^2)./(2*(D0^2))); %高斯低通滤波器
result(i,j)=(1-H)*g(i,j);
end
end
result=ifftshift(result);%傅里叶反变换
J1=ifft2(result);
J2=uint8(real(J1));
%高频强调滤波
F=0.5+0.75*(1-H);%根据给定的 k1\k2 两个系数对传递函数进行修改
G=F*g;
result2=ifftshift(G);%傅里叶反变换
J3=ifft2(result2);
J4=uint8(real(J3));
subplot(1,2,2)
imshow(J4)
title('高频强调滤波后的图像')

2 实验二

2.1 实验题目

       使用陷波滤波器对下图进行图像增强,给出傅里叶频谱,并分析陷波滤波器尺寸的影响。给出关键步骤的输入输出数据大小)

2.2 程序源代码

close all
clear all;
clc;
f = imread('timu4.jpg');%读取图像
f = mat2gray(f,[0 255]);
%图像填充
[M,N] = size(f);%读取图像宽度和高度
P = 2*M;
Q = 2*N;
fc = zeros(M,N);
%频域中心化
for x = 1:1:M
for y = 1:1:N
fc(x,y) = f(x,y) * (-1)^(x+y);
end
end
F = fft2(fc,P,Q);%二维傅里叶变换
%陷波滤波算法
H_NF = ones(P,Q);%为了方便后面的累乘,所以用 ones,如果是累加就用 zeros
for x = (-P/2):1:(P/2)-1
for y = (-Q/2):1:(Q/2)-1
D = 30;
v_k = 59; u_k = 77;
D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
v_k = 59; u_k = 159;
D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
v_k = -54; u_k = 84;
D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
v_k = -54; u_k = 167;
D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
end
end
%傅里叶逆变换
G_1 = H_NF .* F;
g_1 = real(ifft2(G_1));
g_1 = g_1(1:1:M,1:1:N);
for x = 1:1:M
for y = 1:1:N
g_1(x,y) = g_1(x,y) * (-1)^(x+y);
end
end
close all;
figure();
subplot(1,2,1);
imshow(f,[0 1]);
xlabel('原图像');
subplot(1,2,2);
imshow(log(1 + abs(F)),[ ]);%图像幅度谱,加 log 便于显示
xlabel('原图像的傅里叶频谱');
figure();
subplot(1,2,2);
imshow(log(1 + abs(G_1)),[ ]);%图像幅度谱,加 log 便于显示
xlabel('滤波后图像的傅里叶频谱');
subplot(1,2,1);
imshow(g_1,[0 1]);
xlabel('陷波滤波后图像');

2.3 参数影响

       陷波滤波器的尺寸会对图像的清晰度和图像的质量造成影响,尺寸越大,对图像 滤波处理的效果越好,图像质量越好。

3 实验三

3.1 实验题目

       简述数字图像处理中的频率域滤波步骤,并给出适用的图像范围。

3.2 题目解答

       频率域滤波是数字图像处理中一种常用的图像增强和去噪方法,它通过对图像进行傅里叶变换,将图像从空间域转换到频率域,然后对频率域图像进行滤波操作,最 后再进行逆傅里叶变换将图像转换回空间域。频率域滤波的步骤如下:

(1)将原始图像进行灰度化处理,得到灰度图像。

(2)对灰度图像进行零均值化,即减去图像的平均灰度值。

(3)对零均值化后的图像进行二维傅里叶变换(DFT),得到频率域图像。

(4)在频率域中选择合适的滤波函数,如低通滤波器、高通滤波器或带通滤波器等。

(5)将选择的滤波函数应用于频率域图像,得到滤波后的频率域图像。

(6)对滤波后的频率域图像进行逆傅里叶变换(IDFT),得到空间域中的滤波后图像。

(7)对滤波后的图像进行反零均值化,即加上原始图像的平均灰度值。

(8)最后可以对滤波后的图像进行进一步的后处理,如灰度拉伸、对比度调整等。

       频率域滤波适用于各种类型的图像,包括但不限于自然图像、医学图像、卫星图像等。它可以用于图像增强、去噪、边缘检测、纹理分析等应用领域。

http://www.dtcms.com/a/495273.html

相关文章:

  • JPA 用 List 入参在 @Query中报错 unexpected AST node: {vector}
  • 国外网站顶部菜单设计电子商务 网站设计
  • 南城县建设局网站北京vi设计公司哪
  • spark性能优化1:通过依赖关系重组优化Spark性能:宽窄依赖集中处理实践
  • 工程师的烹饪 - 空气炸锅菜谱
  • 如何在腾讯云上建设网站手机必备网站
  • Linux:12.线程同步与互斥
  • 泰安网站建设哪家强wordpress m1
  • el-table中控制单列内容多行超出省略及tooltip
  • 构建企业级跨境电商(Temu)财务数据自动化采集系统
  • B-tree索引像字典查词一样工作?那哪些数据库查询它能加速,哪些不能?
  • C++实现二叉树搜索树
  • 网站开发和美工的区别手机域名注册被骗
  • 做模特的网站python语言编程入门
  • GeeLark 9月功能更新回顾
  • C++---ref-qualifier( / )函数的左右值调用的界定
  • vue3:数组的.includes方法怎么使用
  • 网站建设及网页设计企业宣传片公司
  • 132.MIG IP核中没有512M16的只有512M8的如何解决
  • SwiftUI 布局之美:Padding 让界面呼吸感拉满
  • RHCSA-08文本处理工具
  • JSP XML 数据处理
  • “String到Date转换失败”:深挖@RequestBody的日期坑
  • 分布式事务以及Seata(XA、AT模式)
  • 做网站的 简历标识设计网
  • 平台网站建设意见征求表社区类网站开发
  • 电脑零配件行业MES系统:快速实现全过程信息溯源
  • 基于单片机与上位机的智能宠物喂食管理系统设计
  • 新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
  • 【深度学习新浪潮】LLM 大模型压缩落地实践(2025 版)