影像壓縮編碼碼matlab實現——變換編碼
%設定壓縮比cr
cr = 0.5;
%讀入並顯示原始影像
I1 = imread('lena512.bmp');
figure(1);
imshow(I1);
%對影像進行FFT
I1 = double(I1);
fftcoe = blkproc(I1, [8 8], 'fft2(x)');
coevar = im2col(fftcoe, [8 8], 'distinct');
coe = coevar;
[y, ind] = sort(coevar);
[m, n] = size(coevar);
snum = 64 - 64*cr;
%捨去不重要的係數
for i = 1: n
coe(ind(1: snum), i) = 0;
end
B2 = col2im(coe, [8 8], [512 512], 'distinct');
%對子影像塊進行IFFT獲得各個子影像的復原影像,並顯示壓縮影像
I2 = blkproc(B2, [8 8], 'ifft2(x)');
figure(2);
imshow(I2, [ ]);
%計算圴方誤差
%erms = erms(I1, I2)
e = double(I1) - double(I2);
[m, n] = size(e);
ERMS = sqrt(sum(e(:).^2)/(m*n))
% 設定壓縮比,cr=0.5為2:1壓縮;cr=0.1250為8:1壓縮
cr = 0.125;
initialimage = imread('lena512.bmp');
initialimage = double(initialimage)/255;
figure();
subplot(121);
imshow(initialimage);
%對影像進行DCT變換
t = dctmtx(8);
dctcoe = blkproc(initialimage, [8 8], 'P1*x*P2', t, t');
%將DCT變換後的矩陣轉換成列,並按升序排列
coevar = im2col(dctcoe, [8 8], 'distinct');
coe = coevar;
[y, ind] = sort(coevar);
[m, n] = size(coevar);
%捨去不重要的係數
snum = 64-64 * cr;
for i = 1:n
coe(ind(1:snum), i) = 0;
end
%把列變換為二維矩陣
b2 = col2im(coe, [8 8], [512 512], 'distinct');
%逆DCT變換
i2 = blkproc(b2, [8 8], 'P1*x*P2', t', t);
subplot(122);
imshow(i2);
e = double(initialimage)-double(i2);
[m, n] = size(e);
erms = sqrt(sum(e(:).^2)/(m*n))
相關文章
- 影像壓縮編碼碼matlab實現——行程編碼Matlab行程
- 影像壓縮編碼碼matlab實現——DM編碼Matlab
- 影像壓縮編碼碼matlab實現——算術編碼Matlab
- 影像壓縮編碼碼matlab實現——常用引數計算Matlab
- 貪心演算法——Huffman 壓縮編碼的實現演算法
- CSP之壓縮編碼(動態規劃)動態規劃
- 高效的資料壓縮編碼方式 Protobuf
- LZ77壓縮演算法編碼Python實現原理圖解演算法Python圖解
- 編碼轉換
- 檢視網頁是否壓縮gzip+編碼方式網頁
- 【字元編碼系列】Base64編碼原理以及實現字元
- 用ASP實現線上壓縮與解壓縮功能程式碼
- 字元編碼轉換字元
- URL編碼轉換
- 用Javascript實現UTF8編碼轉換成gb2312編碼JavaScript
- 檢測檔案編碼,轉換檔案編碼
- 【學習圖片】13.自動壓縮和編碼
- 數字媒體技術揭祕(續)——壓縮編碼
- C# 基礎知識:字元編碼、編碼轉換C#字元
- JS 簡單實現UTF-8編碼,Base64編碼JS
- 標籤編碼、獨熱編碼大不同 - Python 實現Python
- 計算機演算法:資料壓縮之圖編碼和模式替換(3)計算機演算法模式
- 位元組編碼轉換
- java字元編碼轉換Java字元
- hive學習之四:hive檔案格式以及壓縮編碼Hive
- Mysql編碼, Mysql編碼流程, Mysql編碼順序, Mysql編碼原理, Mysql編碼修改依據MySql
- Base24編碼以及解碼的實現
- Linux下檢視檔案編碼,檔案編碼格式轉換和檔名編碼Linux
- 文字編碼轉換工具iconv 附批量轉換檔案編碼命令
- Java實現BCD編碼與十進位制轉換Java
- Android短影片系統硬編碼—實現音影片編碼(三)Android
- Android短影片系統硬編碼—實現音影片編碼(二)Android
- 編碼轉換統一防止亂碼
- UTF-8編碼與GBK編碼之間的轉換
- 計算機演算法:資料壓縮之字首編碼(5)計算機演算法
- 計算機演算法:資料壓縮之遊程編碼計算機演算法
- C#實現Base64編碼與解碼
- javascript字元編碼轉換方法JavaScript字元