图像的频域滤波-低通滤波

2024-03-25 05:18
文章标签 图像 滤波 频域 通滤波

本文主要是介绍图像的频域滤波-低通滤波,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

图像的频域滤波-低通滤波

1.理想低通滤波

介绍

ilpf
如图,通带内留下,阻带内直接干掉。


效果
这里写图片描述

  • 理想低通最大的缺点就是会产生振铃效应,从滤波后结果的图片就可以发现(有一圈圈波纹的感觉)。

实例代码

clc;
clear all;
close all;
%理想低通滤波器所产生的模糊和振铃现象 
I=imread('lena.jpg');
if size(I, 3)==3I = rgb2gray(I);
end
subplot(3,3,1);imshow(I);xlabel('(a)原始图像');
I=double(I);
%采用傅里叶变换
f=fft2(I);
g0=fftshift(f);
subplot(3,3,2);imshow(log(1+abs(g0)), []);xlabel('(b)频谱图像');%color(jet(64));
[M,N]=size(f);
n1=floor(M/2);
n2=floor(N/2);% d0=5, 15, 45, 65 理想低通的截取半径
d0=5;
for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0 %列出传递函数h=1;elseh=0;endg1(i,j)=h*g0(i,j);end
end
g1=ifftshift(g1);%频谱变回左上角为直流分量的形式
g1=uint8(real(ifft2(g1)));
subplot(3,3,3);imshow(g1);xlabel('(c)被滤掉10%高频能量')d1=15;
for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d1h=1;elseh=0;endg2(i,j)=h*g0(i,j);end
end
g2=ifftshift(g2);
g2=uint8(real(ifft2(g2)));
subplot(3,3,4);imshow(g2);
xlabel('(d)被滤掉3.6%高频能量')d2=45;
for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d2h=1;elseh=0;endg3(i,j)=h*g0(i,j);end
end
g3=ifftshift(g3);
g3=uint8(real(ifft2(g3)));
subplot(3,3,5);imshow(g3);
xlabel('(e)被滤掉1%高频能量')d3=65;
for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d3h=1;elseh=0;endg4(i,j)=h*g0(i,j);end
end
g4=ifftshift(g4);
g4=uint8(real(ifft2(g4)));
subplot(3,3,6);imshow(g4);
xlabel('(f)被滤掉0.6%高频能量')

巴特沃兹低通滤波

介绍

这里写图片描述

  • 巴特沃兹低通滤波器实现了通阻带的平稳过渡。因此,滤波后没有明显振铃现象的产生。

效果图
这里写图片描述

示例代码

clc;
clear all;
close all;
I1=imread('lena.jpg');                  % 读入图像
if size(I1, 3)==3I1 = rgb2gray(I1);
end
subplot(2,2,1),imshow(I1);               % 显示原始图像
xlabel('(a) 原始图像');
f=double(I1);                            % 数据类型转换
g=fft2(f);                               % 图像傅立叶转换
g=fftshift(g);                           % 傅立叶变换平移
F2 = log(1+abs(g));                        % 对傅立叶变换结果取绝对值,然后取对数
subplot(2,2,2),imshow(F2,[]); % 将计算后的矩阵用图像表示
xlabel('(b) 原始图像的傅里叶变换图像');[N1,N2]=size(g);                         % 傅立叶变换图像尺寸
n=2;                                     % 参数赋初始值
d0=5;                                    % 参数赋初始值
n1=fix(N1/2);                            % 数据圆整
n2=fix(N2/2);                            % 数据圆整
for i=1:N1                               % 遍历图像像素
for j=1:N2d=sqrt((i-n1)^2+(j-n2)^2);if d==0h=0;                       % 求helseh=1/(1+(d/d0)^(2*n));      % 巴特沃兹低通的幅频响应endresult(i,j)=h*g(i,j);          % 图像矩阵计算处理
end
end
F3 = log(1+abs(result));                   % 对傅立叶变换结果取绝对值,然后取对数
subplot(2,2,3),imshow(F3); % 将计算后的矩阵用图像表示
xlabel('(c) 滤波后的傅里叶变换图像')result=ifftshift(result);               % 傅立叶变换平移
X2=ifft2(result);                       % 图像傅立叶逆变换
X3=uint8(real(X2));                     % 数据类型转换
subplot(2,2,4),imshow(X3)               % 显示处理后的图像
xlabel('(d) Butterworth低通滤波图像');

这篇关于图像的频域滤波-低通滤波的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843926

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

Open3D 基于法线的双边滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 输入参数: 输出参数: 参数影响: 2.2完整代码 三、实现效果 3.1原始点云 3.2滤波后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述         基于法线的双边

6.4双边滤波

目录 实验原理 示例代码1 运行结果1 实验代码2 运行结果2 实验原理 双边滤波(Bilateral Filtering)是一种非线性滤波技术,用于图像处理中去除噪声,同时保留边缘和细节。这种滤波器结合了空间邻近性和像素值相似性的双重加权,从而能够在去噪(平滑图像)的同时保留图像的边缘细节。双边滤波器能够在的同时,保持边缘清晰,因此非常适合用于去除噪声和保持图像特征。在Op

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。

6.3中值滤波

目录 实验原理 示例代码1 运行结果1 示例代码2 运行结果2 实验原理 中值滤波(Median Filtering)是一种非线性滤波技术,常用于图像处理中去除噪声,特别是在保留边缘的同时减少椒盐噪声(salt-and-pepper noise)。OpenCV中的cv::medianBlur函数可以实现中值滤波。 函数原型 void medianBlur( InputAr

Winfrom中解决图像、文字模糊的方法

1.添加清单 2.将清单中的下面内容取消注释