课程学习——DCT图像压缩试验

matlab:DCT图像压缩试验。
代码:

clc;clear;
img = rgb2gray(imread('E:\matlabCX\图片\7.jpg'));
figure, imshow(img); 

% 1,使图像行列为 8的倍数
[row,col] = size(img);
row = round(row/8) * 8; 
col = round(col/8) * 8;
img = imresize(img, [row, col]);

% 2,对图像块进行dct变换
img_dct = zeros(row, col); % 存放转换后的dct系数
for i=1:8:row-7
    for j=1:8:col-7
        img_block = img(i:i+7, j:j+7);
        dct_block = dct2(img_block); % 也可用刚才实现的(定义成一个函数即可)
        % imshow(dct_block); % 显示dct块
        img_dct(i:i+7, j:j+7) = dct_block;
    end
end
figure, imshow(img_dct); % 显示生成的dct系数

% 3,dct反变换
new_img = zeros(row,col);
for i=1:8:row-7
    for j=1:8:col-7
        dct_block = img_dct(i:i+7, j:j+7);
        img_block = idct2(dct_block); % 也可用刚才实现的(定义成一个函数即可)
        new_img(i:i+7, j:j+7) = img_block;
    end
end
figure,  imshow(mat2gray(new_img)); % 显示反变换回来的图像

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
少年不被楼层误,余生不羁尽自由。
加油,加油!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值