资源简介
对彩色图像进行JPEG压缩
代码片段和文件信息
RGB=imread(‘lena.jpg‘);%读取图片
RGB=imresize(RGB[168224]);%因为1.jpg大小为169*220,所以我改为168*224
imwrite(RGB‘start.jpg‘); %保存压缩前图像
%下面是对RGB三个分量进行分离此时他们依然为整数
R=RGB(::1);
G=RGB(::2);
B=RGB(::3);
%RGB->YUV
Y=0.299*double(R)+0.587*double(G)+0.114*double(B);
U=-0.169*double(R)-0.3316*double(G)+0.5*double(B);
V=0.5*double(R)-0.4186*double(G)-0.0813*double(B);
YUV=cat(3YUV);%YUV图像
figureimshow(uint8(YUV))title(‘YUV‘)
%T=dctmtx(8);%产生一个8*8的DCT变换举证
n = 8;
[ccrr] = meshgrid(0:n-1);
T = sqrt(2 / n) * cos(pi * (2*cc + 1) .* rr / (2 * n));
T(1:) = T(1:) / sqrt(2);
%进行DCT变换 BY BU BV是double类型
BY=blkproc(Y[8 8]‘P1*x*P2‘TT‘);
BU=blkproc(U[8 8]‘P1*x*P2‘TT‘);
BV=blkproc(V[8 8]‘P1*x*P2‘TT‘);
a=[16 11 10 16 24 40 51 61;
12 12 14 19 26 58 60 55;
14 13 16 24 40 57 69 55;
14 17 22 29 51 87 80 62;
18 22 37 56 68 109 103 77;
24 35 55 64 81 104 113 92;
49 64 78 87 103 121 120 101;
72 92 95 98 112 100 103 99;]; %量化值
b=[17 18 24 47 99 99 99 99;
18 21 26 66 99 99 99 99;
24 26 56 99 99 99 99 99;
47 66 99 99 99 99 99 99;
99 99 99 99 99 99 99 99;
99 99 99 99 99 99 99 99;
99 99 99 99 99 99 99 99;
99 99 99 99 99 99 99 99;];
%BY2 BU2 BV2是double类型
BY2=blkproc(BY[8 8]‘x./P1‘a);
BU2=blkproc(BU[8 8]‘x./P1‘b);
BV2=blkproc(BV[8 8]‘x./P1‘b);
- 上一篇:MMC变流器仿真模型
- 下一篇:nc文件的读取作图
相关资源
- nc文件的读取作图
- matlab图像融合程序
- 导线网平差matlab程序
- ID3算法MATLAB实现,机器学习作业
- 基于颜色的matlab代码
- 图像分类模式识别算法源代码
- MATLAB直方图绘制代码
- matlab 一维传热问题
- matlab实现小波变换融合以及信息熵、
- 小波变换matlab
- matlab编写的地震剖面显示程序
- FMCW毫米波雷达测量呼吸心跳算法mat
- kld采样
- 以高斯塞德尔法和牛顿拉夫逊法为思
- 切比雪夫轨道拟合MATLAB代码
- matlab三维点坐标生成点云
- 改进灰色马尔科夫模型估测湖北省用
- 带时间窗的车辆路径规划问题的粒子
- 步长加速法寻优迭代
- Matlab GUI图像图形基础教程
- 人眼检测、疲劳驾驶检测,MATLAB代码
- 小波神经网络MAtlab工具箱
- 可以运行的GA 算法 ,matlab 编写
- CRC32的FPGA并行实现原理及MATLAB仿真
- DWT小波变换MATLAB
- 读取jiason测高卫星nc文件matlab代码
-
MATLAB_SIMUli
nk系统仿真超级学习手册 - Matlab图像分割法
- MATLAB下求两幅图像的峰值信噪比PSNR
- IHS图像变换融合 matlab
评论
共有 条评论