代碼轉載于https://blog.csdn.net/hesays/article/details/39499091,僅學習用
我遇到的問題是,lena壓縮后有條紋間斷出現,不知道是什么原因,求·大佬解答
I=imread('lena.bmp');
I1=im2double(I);
I1=I1(:,:,1);
T=dctmtx(8);
B=blkproc(I1,[8 8],'P1*x*P2',T,T');
mask=[ 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 ];
mask=mask./100;
B2=blkproc(B,[8 8],'P1*x',mask);
I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
subplot(1,2,1)
imshow(I1)
title('原始影像')
figure;
subplot(1,2,2)
imshow(I2)
title('壓縮后的影像')
x1=imread('lena.bmp');
I=imread('lena.bmp');
x2=rgb2gray(I);
x1=double(x1);
x2=double(x2);
[m,n]=size(x1);
[m2,n2]=size(x2);
if m2~=m||n2~=n;
error('影像選擇錯誤');
end;
msevalue=https://bbs.csdn.net/topics/0;
for i=1:m;
for j=1:n;
msevalue=https://bbs.csdn.net/topics/msevalue+(x1(i,j)-x2(i,j))^2;
end;
end;
msevalue=https://bbs.csdn.net/topics/msevalue/(m*n);
disp(['輸入資料的mse為:',num2str(msevalue)]);
psnrvalue=https://bbs.csdn.net/topics/255^2/msevalue;
psnrvalue=https://bbs.csdn.net/topics/10*log10(psnrvalue);
rgb=imread(' G:\lena3.jpg ');
yuv=rgb2ycbcr(rgb);
yuv=double(yuv);
y=yuv(:,:,1);
u=yuv(:,:,2);
v=yuv(:,:,3);
eql=8;
T = dctmtx(8);
y_dct=blkproc(y,[8,8],'P1*x*P2',T, T');
u_dct=blkproc(u,[8,8],'P1*x*P2',T, T');
v_dct=blkproc(v,[8,8],'P1*x*P2',T, T');
y_dct=y_dct/eql;
u_dct=u_dct/eql;
v_dct=v_dct/eql;
y_dct_c=fix(y_dct);
u_dct_c=fix(u_dct);
v_dct_c=fix(v_dct);
y_dct_c=y_dct_c*eql;
u_dct_c=u_dct_c*eql;
v_dct_c=v_dct_c*eql;
y_idct=blkproc(y_dct_c,[8,8],'P1*x*P2', T^-1,(T')^-1);
u_idct=blkproc(u_dct_c,[8,8],'P1*x*P2', T^-1,(T')^-1);
v_idct=blkproc(v_dct_c,[8,8],'P1*x*P2', T^-1,(T')^-1);
yuv(:,:,1)=y_idct;
yuv(:,:,2)=u_idct;
yuv(:,:,3)=v_idct;
yuv=uint8(yuv);
rgb1=ycbcr2rgb(yuv);
for i = 1:length( y_idct);
for j = 1:length( u_idct);
sum = 0;
for k = 1:length(v_idct);
sum = sum + rgb1(i , j , k) / 3;
end
rgb1 (i , j) = sum;
end
end
imwrite(rgb1,'jpg')
subplot(121),imshow(rgb),title('原始影像');
subplot(122),imshow(rgb1),title('處理后影像');
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27702.html
標籤:新手樂園
上一篇:如何在MySQL中新建一張資料表
下一篇:求解這段代碼 大佬們
