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

matlab实现图像变换(傅里叶变换、离散余弦变换)

        任意周期波形:可分解为正弦波的加权和。

        非周期函数:可用正弦和/或余弦乘以加权函数的积分表示用傅立叶级数或变换表示的函数特征可以通过傅立叶反变换重建,不丢失任何信息。

        傅里叶变换:越靠近中心低频,越远离中心高频。用高频或者低频进行滤波处理。

        离散余弦变换:图片压缩处理。

1.傅里叶变换

        傅里叶变换是一种将信号(包括图像)从时域转换到频域的方法。它可以将一个时域上的连续信号或数字信号分解成不同频率的正弦和余弦波的叠加,在频域上呈现出信号的频率、幅值等特性。傅里叶变换在数字信号处理和图像处理中有着广泛的应用,可以用来分析和处理不同领域的信号。

        在二维图像处理中,傅里叶变换可以将一副图像从空间域转换到频率域。在频率域中,每个频率对应一个振幅和相位,可以通过加减振幅和相位来重建原始图像。因此,通过傅里叶变换可以实现很多图像处理操作,例如图像滤波、压缩、边缘检测和模式识别等。

        傅里叶变换的基本思想是将一个信号表示为许多不同频率的正弦和余弦函数的叠加。如果一个信号是纯正弦波,则傅里叶变换后只有一个频率非零。而对于一个复杂的信号,傅里叶变换可以将其分解成若干个频率的叠加。傅里叶变换的数学表达式可以用积分来表示,通常使用快速傅里叶变换(FFT)算法进行计算。

        在图像处理中,经常使用二维离散傅里叶变换(DFT)将一个图像从空间域转换到频率域。在频率域中,每个像素值表示一个振幅和相位,可以通过加减振幅和相位来重建原始图像。同时,在频率域中对信号进行滤波操作可以实现图像去噪、锐化、模糊及边缘检测等操作。

close all;  %关闭当前所有图形窗口
clear all;  %清空工作空间变量
clc;        %清屏
I=imread('lena.bmp');
I=rgb2gray(I);
K1=fft2(I);      %傅里叶变换
K2=fftshift(K1); %平移
K3=ifft2(K1);
L1=abs(K1/256);
L2=abs(K2/256);
figure;
subplot(221),imshow(I);
subplot(222),imshow(uint8(L1)),title('平移前傅里叶变换');
subplot(223),imshow(uint8(L2)),title('平移后傅里叶变换');
subplot(224),imshow(uint8(K3)),title('反傅里叶变换');

 

2.离散余弦变换

        离散余弦变换(Discrete Cosine Transform,DCT)是一种将图像从空间域转换到频率域的方法,类似于傅里叶变换。它将一个二维的离散信号分解成一组离散余弦基函数的加权和,得到信号的频率分量,可以用于图像压缩、特征提取等方面。

        与傅里叶变换不同的是,DCT只使用实数运算,因此计算速度较快。在图像处理中,DCT被广泛应用于JPEG图像压缩标准中,其压缩效果比傅里叶变换更好。

close all;  %关闭当前所有图形窗口
clear all;  %清空工作空间变量
clc;        %清屏
I=imread('lena.bmp');
I=rgb2gray(I);
I=im2double(I);
J=dct2(I);          %离散余弦变换
J(abs(J)<0.1)=0;    %绝对值小于0.1的系数设置为0
K=idct2(J);         %离散余弦反变换
figure;
subplot(131),imshow(I);
subplot(132),imshow(J),title('离散余弦变换');
subplot(133),imshow(K),title('离散余弦反变换');

 

http://www.lryc.cn/news/570734.html

相关文章:

  • 7. 自定义FileInputFormat
  • STM32 独立按键扫描功能大全-支持连击、组合连击、任意连击
  • 收藏网页
  • Android 组件篇
  • 从小护士到微软中国总经理,逆风飞扬的“打工皇后”吴士宏的传奇人生
  • react native踩坑日记(0): 如何配置 IOS React-native环境
  • 【提高】奶牛和草丛 USACO【C++】
  • 估计随机行走的覆盖面积
  • 基于NEON指令的图像旋转加速【armv7】
  • 基于ssm的学生作业管理系统
  • C#-从入门到精通-第12章 Windows应用程序高级控件
  • 如何使用deepseek编写测试计划
  • 科学计数法保留有效数字_分析化学中有效数字及其运算规则
  • C++题解(36) 2025年顺德区中小学生程序设计展示活动(初中组C++)换位(二)
  • 如何在ubuntu上安装flash_player
  • 本地安装discuz x2.5(论坛站)程序
  • BackTrack5(BT5)各版本下载
  • cd linux 镜像,解开 CDLinux 的iso映像文件
  • 战争
  • C语言空指针异常在Java中的解决方案
  • 各大搜索引擎网站提交入口
  • csdn博客登录不上-why?
  • mysql bulk update_Django bulk_create()、update()与数据库事务的效率对比分析
  • 超标量处理器设计9-执行
  • emule最新服务器地址,emule 国内服务器(最新emule服务器)
  • 关于2000W数据
  • 文件或目录损坏且无法读取怎么修复
  • Struts2中Action通配符的配置
  • [转]Linux下安装搜狗拼音输入法
  • 汇川SV660F伺服驱动器通过EtherCAT主站转Profinet网关接入到profinet系统