如何用matlab绘制一个微软图标

先获取微软图标四种颜色的RGB值,然后就用matlab生产JPEG图片的方法进进行编码。
代码如下(matlab语言):

% JPEG文件
%
%用16*16的最小编码单元进行绘图,
%
clear all;
clear;
for i=1:1:16
    for j=1:1:16
        if ((i<=8)&(j<=8))
            R(i,j)=242;
        elseif ((i<=8)&(j>8))
            R(i,j)=127;
        elseif((i>8)&(j<=8))
            R(i,j)=1;
        else 
            R(i,j)=255;
        end
    end
end
for i=1:1:16
    for j=1:1:16
        if ((i<=8)&(j<=8))
            G(i,j)=79;
        elseif ((i<=8)&(j>8))
            G(i,j)=187;
        elseif((i>8)&(j<=8))
            G(i,j)=164;
        else 
            G(i,j)=186;
        end
    end
end
for i=1:1:16
    for j=1:1:16
       if ((i<=8)&(j<=8))
            B(i,j)=33;
        elseif ((i<=8)&(j>8))
            B(i,j)=2;
        elseif((i>8)&(j<=8))
            B(i,j)=241;
        else 
            B(i,j)=1;
        end
    end
end
R
G
B
I(:,:,1)=R;
I(:,:,2)=G;
I(:,:,3)=B;
I=uint8(I);
figure,imshow(I);
Y = floor(0.299*double(R) + 0.587*double(G) + 0.114*double(B))-128;
Cb =floor(-0.1687*double(R) - 0.3313*double(G) + 0.5*double(B));
Cr =floor(0.5*double(R) - 0.4187*double(G) - 0.0813*double(B)) ;
Y
Cb
Cr
Y1=Y(1:8,1:8)
Y2=Y(1:8,9:16)
Y3=Y(9:16,1:8)
Y4=Y(9:16,9:16)
for i=1:1:8
    for j=1:1:8
        Cb1(i,j)=Cb(2*i-1,2*j-1);
        Cr1(i,j)=Cr(2*i-1,2*j-1);
    end
end
Cb1
Cr1
% 量化表
qty=[8   6   5   8  12  20  26  31;
     6   6   7  10  13  29  30  28;
     7   7   8  12  20  29  35  28;
     7   9  11  15  26  44  40  31;
     9  11  19  28  34  55  52  39;
    12  18  28  32  41  52  57  46;
    25  32  39  44  52  61  60  51;
    36  46  48  49  56  50  52  50];
qtc=[9   9  12  24  50  50  50  50;
     9  11  13  33  50  50  50  50;
    12  13  28  50  50  50  50  50;
    24  33  50  50  50  50  50  50;
    50  50  50  50  50  50  50  50;
    50  50  50  50  50  50  50  50;
    50  50  50  50  50  50  50  50;
    50  50  50  50  50  50  50  50];
%DCT
dct_y1=round(dct2(Y1))
dct_y2=round(dct2(Y2))
dct_y3=round(dct2(Y3))
dct_y4=round(dct2(Y4))
dct_cb1=round(dct2(Cb1))
dct_cr1=round(dct2(Cr1))
% 量化系数
 qt_y1=round(dct_y1./qty)
 qt_y2=round(dct_y2./qty)
 qt_y3=round(dct_y3./qty)
 qt_y4=round(dct_y4./qty)
 qt_cb1=round(dct_cb1./qtc)
 qt_cr1=round(dct_cr1./qtc)

效果图:在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值