• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: Matlab
  • 标签: matlab  

资源简介

将图像分成大小为N×N像素的非重叠块,其中N = 8.使用函数dct2,计算每个子图像的DCT系数。 请注意,MATLAB IPT为图像块处理提供了功能块proc。通过矩阵划分每个子图像的DCT系数,反转块变换和量化的操作,并获得恢复的图像。通过从原始图像中减去恢复的图像来获得差异图像。

资源截图

代码片段和文件信息

clc;
clear; 
close all;
I = imread(‘peppers.png‘);
% a) 
I1 = rgb2gray(I);
I1_double = double(I1);
% b) 
I2 = I1_double-128;
% c)
BLOCK = @(block_struct) dct2(block_struct.data);
I_DCT = blockproc(I2[8 8]BLOCK);
% d)
m = 4;
quant = [  16 11 10 16 24 40 51 61;
    12 12 14 19 26 58 60 55;
    14 13 16 24 40 57 69 56;
    14 17 22 29 51 87 80 62;
    18 22 37 56 68109103 77;
    24 35 55 64 81104113 92;
    49 64 78 87103121120101;
    72 92 95 98112100103 99]*m;
BLOCK1 = @(block_struct) round(block_struct.data./quant);
I_DCT_norm = blockproc(I_DCT[8 8]BLOCK1);
% e)  
BLOCK2 = @(block_struct) round(block

评论

共有 条评论