matlab 图像处理 消除锯齿,Matlab图像处理,锯齿阵列图像

我的函数读取图像 - >转换为ycbcrI - > DCT - >量化 - >最终图像通过使用zigzag.I上次操作有问题 - 将数据保存到图像。我想用一个Out变量来保存为图像。怎么做 ? imwrite dosen't工作:(

[Img,map] = imread('test.jpg');

T = [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 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];

figure(1)

imshow(Img);

title('Orginal img');

Img2 = rgb2ycbcr(Img);

[W,S,n] = size(Img2);

figure(2)

imshow(Img2);

title('After rgb2ycbcr');

Y1 = Img2(1:1:W,1:1:S,1);

Cb1 = Img2(1:1:W,1:1:S,2);

Cr1 = Img2(1:1:W,1:1:S,3);

l=3;

Y1 = wextend('2D','zpd',Y1,l,['d','r']);

Cb1 = wextend('2D','zpd',Cb1,l,['d','r']);

Cr1 = wextend('2D','zpd',Cr1,l,['d','r']);

fun = @dct2

Y2 = blkproc(Y1,[8 8],fun);

Cb2 = blkproc(Cb1,[8 8],fun);

Cr2 = blkproc(Cr1,[8 8],fun);

fun2 = @(block_struct) round(block_struct./T);

Y2 = blkproc(Y2,[8 8],fun2);

Cb2 = blkproc(Cb2,[8 8],fun2);

Cr2 = blkproc(Cr2,[8 8],fun2);

YCbCr = Y2+Cb2+Cr2;

Out = zigzag(YCbCr);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值