精華區beta MATLAB 關於我們 聯絡資訊
※ 引述《ikjhyu (還沒想到)》之銘言: : 請問有人知道 jpeg2000 : 裡面的5/3和9/7兩種小波模式 : 各是用matlab裡面哪個指令嗎? : 可否可以給一個簡單的dwt2再idwt2回去的小例子嗎? : 用9/7和5/3兩種mode : 另外假如讀入一張圖應該是要先減128 : 再去做小波轉換對嗎? : 做完小波轉換(尚未轉回來) 如果要看圖長什麼樣子 : 應該也是要加128再show出來對嗎? 我以前寫的.自用吧~不保證正確喔~^^||| clear;clc;close all; u8=imread('Body.jpg'); % Pre-rocessing P=double(u8(:,:,3))+1-128; [m,n]=size(P); % Forward Intercomponent Transform => DWT: Periodic symmetric extension a_L=sqrt(2)*[-1/8 2/8 6/8 2/8 -1/8]; % Analysis a_H=[0 0 -1/2 1 -1/2]/sqrt(2); s_L=[0 0 1/2 1 1/2]/sqrt(2); % Synthesis s_H=sqrt(2)*[-1/8 -2/8 6/8 -2/8 -1/8]; [cA,cH,cV,cD] = dwt2(P,a_L,a_H); % Quantization => lossless => step size:1 delta=1; cA=sign(cA).*floor(abs(cA)/delta); cH=sign(cH).*floor(abs(cH)/delta); cV=sign(cV).*floor(abs(cV)/delta); cD=sign(cD).*floor(abs(cD)/delta); % Entropy Encoding => Tier-1 Encoder % Dequantization cA=(cA+(1/2)*sign(cA))*delta; cH=(cH+(1/2)*sign(cH))*delta; cV=(cV+(1/2)*sign(cV))*delta; cD=(cD+(1/2)*sign(cD))*delta; % IDWT backP=idwt2(cA,cH,cV,cD,s_L,s_H); % Backing... backu8=uint8(round(backP(2:end,2:end))+128-1); figure;subplot(121);imshow(u8);subplot(122);imshow(backu8); imwrite(backu8,'backu8.bmp'); back=double(imread('backu8.bmp'))+1-128; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.135.217
skies0331:好厲害!!! 12/16 01:43