news 2026/6/10 14:43:07

当图像开始跳舞:用Matlab玩转频率域滤镜

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
当图像开始跳舞:用Matlab玩转频率域滤镜

标题:基于matlab的理想滤波器和巴特沃斯滤波器设计 关键词:一阶巴特沃斯滤波器 理想滤波器 二维傅里叶变换 fft2 描述:对任意图像进行灰度化,然后进行二维傅里叶变化,设定一个阈值,对高频或者低频信号进行滤波操作。 通过设置阈值,选择类型可设置理想低通,理想高通滤波器和一阶巴特沃斯高通和一阶巴特沃斯低通滤波器。 基于matlab的图像处理小实验,

最近在折腾图像处理的时候发现,频率域滤波像给照片开了上帝视角——原本藏在像素背后的高频细节和低频轮廓突然变得可控。今天咱们拿Matlab当画笔,试试怎么用理想滤波器和巴特沃斯滤波器给图像做"美颜"。

先抓张图进来折腾:

% 灵魂画手的第一步 img = imread('lena.jpg'); gray_img = rgb2gray(img); figure(1), imshow(gray_img), title('原图:等待滤镜的素颜照')

!图1:原图

接下来要进入核心环节——二维傅里叶变换。这时候图像会变成频域里的一团星云:

% 施展空间魔法 f_img = fft2(double(gray_img)); f_shift = fftshift(f_img); magnitude = log(abs(f_shift)+1); figure(2), imshow(magnitude,[]), title('频域星云图')

!图2:频域分布

重点来了,咱们先做个理想低通滤波器试试。这玩意儿就像个暴君,对超出阈值的频率直接封杀:

% 专制型滤镜生成器 [M,N] = size(gray_img); D0 = 30; % 试试把这个值调到15看看会发生什么 u = 0:(M-1); v = 0:(N-1); [V,U] = meshgrid(v,u); D = sqrt((U-floor(M/2)).^2 + (V-floor(N/2)).^2); ideal_LP = double(D <= D0);

!图3:理想低通效果

看这个滤镜模板,边缘锋利得像菜刀切出来的。这种简单粗暴的方式虽然有效,但处理后的图像边缘总带着奇怪的振铃,就像给照片套了个劣质相框。

这时候就该巴特沃斯滤波器出场了。一阶的设计让它像个温和的管家,对频率成分的过渡处理得更圆滑:

% 温柔版滤镜配方 n = 1; % 一阶设计 butter_HP = 1./(1 + (D./D0).^(2*n)); figure(4), mesh(butter_HP), title('巴特沃斯曲面')

!图4:巴特沃斯模板

把这两个滤镜往频域信号上一套,效果立竿见影:

% 理想低通实战 filtered_ideal = f_shift .* ideal_LP; f_ishift_ideal = ifftshift(filtered_ideal); img_back_ideal = real(ifft2(f_ishift_ideal)); % 巴特沃斯高通表演 butter_HP = 1 - butter_HP; % 秒变高通 filtered_butter = f_shift .* butter_HP; f_ishift_butter = ifftshift(filtered_butter); img_back_butter = real(ifft2(f_ishift_butter));

最后对比看看处理效果:

% 作品展示环节 figure(5) subplot(121),imshow(img_back_ideal,[]),title('理想低通:柔光效果') subplot(122),imshow(img_back_butter,[]),title('巴特沃斯高通:边缘提取')

!图5:对比效果

玩的时候注意几个关键点:

  1. fftshift就像个搬运工,把低频部分搬到频谱图中心
  2. 恢复图像时用real()是因为计算时可能残留微小虚部
  3. D0这个阈值相当于滤镜的力度旋钮,调太小会丢失细节

下次想更刺激的话,可以试试把巴特沃斯的阶数调高,看看会不会出现类似理想滤波器的效果。或者做个滑块交互界面,实时看滤镜变化——不过那就是另一个故事了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:43:50

树形动态规划

文章目录前言一、树形动态规划是什么&#xff1f;二、对树形动态规划的分析1.分析具体实例2.树的构建过程以及最终的代码前言 上期文章&#xff0c;我们讲了区间动态规划的内容&#xff0c;如果对区间动态规划的内容还有疑问的话&#xff0c;可以参考我的上期内容&#xff0c;…

作者头像 李华
网站建设 2026/6/10 2:38:37

Spring Bean自动装配(Autowiring)模式详解

Spring Bean自动装配&#xff08;Autowiring&#xff09;模式详解一、核心概念&#xff1a;自动装配 vs 手动装配装配方式核心区别配置方式&#xff08;XML示例&#xff09;手动装配开发者显式指定每个依赖项的引用。使用 <property> 标签的 ref 或 value 属性。自动装配…

作者头像 李华
网站建设 2026/6/10 11:42:38

基于AI智能名片链动2+1模式S2B2C商城小程序的商户端微商平台构建研究

摘要&#xff1a;在数字化商业浪潮下&#xff0c;商户端微商面临激烈竞争&#xff0c;需构建全面且高效的平台体系。本文聚焦AI智能名片链动21模式S2B2C商城小程序在商户端微商平台构建中的应用&#xff0c;从技术、宣传、资源三个平台维度展开研究。通过分析该模式在各平台的作…

作者头像 李华
网站建设 2026/6/10 13:42:57

专注充电桩投资,招募城市合伙人 - 慧知开源充电桩平台

专注充电桩投资&#xff0c;招募城市合伙人 - 慧知开源充电桩平台 我们提供资本与战略&#xff0c;您负责落地与执行。本团队的核心业务是 投资建设充电桩&#xff0c;并作为您的投资人兼战略顾问&#xff1a;投入全部资金&#xff0c;并在选址、技术、资源等关键环节提供支持&…

作者头像 李华
网站建设 2026/6/10 11:34:24

Java毕设选题推荐:基于vue+协同过滤算法的动漫推荐系统热门动漫浏览、文章专栏阅读【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华