亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> MATLAB

MATLAB二维逆离散余弦变换:从频域复原图像

二维逆离散余弦变换(2-D IDCT/ICT)将余弦系数矩阵(频域表示)转回空域,还原原始信号或图像。是余弦变换的逆运算,在信号/图像处理中用于从频域重建信号图像。

MATLAB用idct2执行二维逆余弦变换,输入余弦系数矩阵,返回空域图像。常用于图像压缩(如JPEG)、图像重建、频域操作后还原。

二维逆离散余弦变换

语法

B = idct2(A)
B = idct2(A,m,n)
B = idct2(A,[m n])

语法说明

示例1:idct2()移除高频滤波图像

img = imread('autumn.tif');
if size(img, 3) == 3; img = rgb2gray(img); end
% 计算二维DCT
dct_img = dct2(double(img));
% 阈值保留前50系数,高频置零
threshold = 50;
dct_img_thresh = dct_img;
dct_img_thresh(threshold+1:end, :) = 0;
dct_img_thresh(:, threshold+1:end) = 0;
% 逆变换重建滤波图像
filtered_img = uint8(idct2(dct_img_thresh));
% 显示对比
figure; subplot(1,2,1); imshow(img); title('原始图像');
subplot(1,2,2); imshow(filtered_img); title('滤波图像');

流程:读图→灰度→dct2得频域系数→阈值截断高频→idct2重建→对比显示。保留低频系数可平滑图像、去噪。

示例2:B = idct2(A,m,n)调整图像尺寸

img = imread('autumn.tif');
if size(img, 3) == 3; img = rgb2gray(img); end
dct_img = dct2(double(img));
% 频域系数矩阵缩小一半
new_size = size(img) / 2;
dct_resized = imresize(dct_img, new_size);
% 逆变换并指定输出原图尺寸
resized_img = uint8(idct2(dct_resized, size(img,1), size(img,2)));
subplot(1,2,1); imshow(img); title('原始图像');
subplot(1,2,2); imshow(resized_img); title('IDCT重建缩放图像');

在频域缩放系数矩阵再逆变换,可实现图像缩放。输出尺寸参数确保重建到原始分辨率。

示例3:矩阵尺寸变换 4×4 → 3×2

A = [10,20,30,40; 50,60,70,80; 90,100,110,120; 130,140,150,160];
disp('原始矩阵 A:'); disp(A);
B = idct2(A, [3, 2]);
disp('重设矩阵 B (3x2):'); disp(B);

输出:

原始矩阵 A:
10 20 30 40
50 60 70 80
90 100 110 120
130 140 150 160
重设矩阵 B (3x2):
122.0957 -11.9692
-97.4491 1.6910
12.0957 -1.9692

MATLAB

  1. MATLAB 向量完全指南:行/列向量创建、索引引用、切片、核心运算操作
  2. MATLAB 函数详解:定义、工作区、输入输出与多种函数类型
  3. MATLAB M 文件编程:脚本与函数的创建、运行与最佳实践
  4. MATLAB特征值与特征向量实战指南:eig函数全解析
  5. MATLAB 微积分入门:极限计算、性质验证与单侧极限
  6. MATLAB 多维数组与特殊数组完全指南
  7. MATLAB 绘图入门:函数绘图步骤、标注、多曲线与子图
  8. MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
  9. MATLAB 高级绘图:柱状图、等高线与三维曲面图
  10. MATLAB高斯拉普拉斯滤波器:图像边缘检测实战
  11. MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
  12. MATLAB面向对象编程:构建健壮可复用代码的类与对象实战