how to use the while loop iteration in threshold mapping?
显示 更早的评论
i want to find the threshold map for input image Here is the algorithm for threshold map: The proposed method divides the input image into blocks of size defined by the user and checks each block for underflow and overflow after embedding data. If the block produces underflow/overflow, value 0 is assigned in TMAP for that block and block is avoided in the watermark embedding process. On the other hand if the block successfully passes the underflow/overflow test, data are embedded and the imperceptibility of the watermark for this block is noted.If the peak signal to noise ratio (PSNR) of block is equal or greater than the predefined maximum value of peak signal to noise ratio (PSNRMAX), block is declared as embeddable block and TMAP is updated with the current value of threshold T. If the value of PSNR of block is less than PSNRMAX then, value of T is decremented by 1 and block is checked again for PSNRMAX. The process continues until desired value of PSNR is achieved or value of threshold T approaches to TMIN. The detailed procedure for finding TMAP is defined as under: --------------------------------------------------------------------------- 1. Initialize TMAP to an (M=B)(N=B) zero matrix, where B is the user defined size of block and M, N are the height and width of the input image respectively; 2. Initialize TINIT and TMIN and PSNRMAX with the user defined values; 3. Set value of T as TINIT ; 4. Divide the input image I into blocks of size B*B; Iteration 5. Compute integer wavelet transform of block of image I using Cohen Daubechies-Fauraue CDF(2,2) filters, performing decomposition up to 2nd level to obtain middle and high frequency wavelet sub-bands; 6. Apply the compression function using Equation on all horizontal, vertical and diagonal sub-band coefficients for which mod(f)>=T; fq=Kq(f)={ f ,|f|<T fq=Kq(f)={ sign(f)*[floor((f-T)/2)+T] ,|f|>=T 7. Embed the watermark in all sub-band coefficients using Equation, where h represents the original coefficient, b is watermark bit to be embedded and h is the watermarked coefficient. h'=2*h+b; 8. Compute the inverse IWT of block(i,j) to obtain watermarked block block'(i,j), where i,j are the block row and column indices respectively; 9. In order to check that whether watermark embedding has not caused overflow/underflow, minimum and maximum pixel intensity values of watermarked block are computed. The status of block is the modied as under: block(i,j) ={embedable ,if min(block0(i,j))>=0 AND max(block0(i,j))<=255 {not embedable ,otherwise 10. Compute the PSNR of block(i,j) if it is embeddable; 11.If PSNR is found to be greater than or equal to maximum allowed PSNRMAX, the threshold T is recorded in TMAP ; 12. Decrease the value of T by 1. This decrement in T will increase the PSNR of the block after embedding the watermark. This is due to the fact that when T is small, the coefficients alterations are small and good visual quality of marked image is achieved; *End of iteration* 13.The iteration continues till T equals to TMIN, where we obtain the matrix TMAP containing threshold values of each block of input image I depending upon the properties of block.
i have finished a program upto step-13.but i don't no how to put in iteration loop from step-5 to step-12 by using while loop and i want to define a TMAP in two dimensional array.so, please help to me. my code is
------------------------------------------------------------------------------------------------------------------------------------------------------------clc; clear all; close all; I1=imread('liver.jpeg'); I=imresize(I1,[256 256]); [r c]=size(I); bs=64; % Block Size (64x64)
nob=(r/bs)*(c/bs); % Total number of 16 Blocks(4*4)
% Dividing the image into 64*64 Blocks kk=0; for i=1:(r/bs) for j=1:(c/bs) Block(:,:,kk+j)=I((bs*(i-1)+1:bs*(i-1)+bs),(bs*(j-1)+1:bs*(j-1)+bs)); end kk=kk+(r/bs); end % ------------------------------------------------------------------------- % ------------------------------------------------------------------------- % Display all the blocks % subplot(4,4,1); % imshow(Block(:,:,1)); % subplot(4,4,2); % imshow(Block(:,:,2)); % subplot(4,4,3); % imshow(Block(:,:,3)); % subplot(4,4,4); % imshow(Block(:,:,4)); % subplot(4,4,5); % imshow(Block(:,:,5)); % subplot(4,4,6); % imshow(Block(:,:,6)); % subplot(4,4,7); % imshow(Block(:,:,7)); % subplot(4,4,8); % imshow(Block(:,:,8)); % subplot(4,4,9); % imshow(Block(:,:,9)); % subplot(4,4,10); % imshow(Block(:,:,10)); % subplot(4,4,11); % imshow(Block(:,:,11)); % subplot(4,4,12); % imshow(Block(:,:,12)); % subplot(4,4,13); % imshow(Block(:,:,13)); % subplot(4,4,14); % imshow(Block(:,:,14)); % subplot(4,4,15); % imshow(Block(:,:,15)); % subplot(4,4,16); % imshow(Block(:,:,16)); % ---------------------------------------------------------------------------------------------------------------------- % ---------------------------------------------------------------------------------------------------------------------- % Accessing individual Blocks % figure;imshow(Block(:,:,1));% This shows u the first 64*64 Block in a figure window % figure;imshow(Block(:,:,2)); % figure;imshow(Block(:,:,3)); % figure;imshow(Block(:,:,4)); % figure;imshow(Block(:,:,5)); % figure;imshow(Block(:,:,6)); % figure;imshow(Block(:,:,7)); % figure;imshow(Block(:,:,8)); % figure;imshow(Block(:,:,9)); % figure;imshow(Block(:,:,10)); % figure;imshow(Block(:,:,11)); % figure;imshow(Block(:,:,12)); % figure;imshow(Block(:,:,13)); % figure;imshow(Block(:,:,14)); % figure;imshow(Block(:,:,15)); % figure;imshow(Block(:,:,16)); % -------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- LS = liftwave('cdf2.2','Int2Int'); [CA1,CH1,CV1,CD1] = lwt2(double(Block(:,:,1)),LS); imlwt1=[abs(CA1) abs(CH1); abs(CV1) abs(CD1)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt1, []); % title('2-D WAVELET'); CA1= uint8([abs(CA1)]); % figure,imshow(CA1); % title('RESULTANT IMAGE-1'); % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------------------------------------------------- LS = liftwave('cdf2.2','Int2Int'); [CA2,CH2,CV2,CD2] = lwt2(double(Block(:,:,2)),LS); imlwt2=[abs(CA2) abs(CH2); abs(CV2) abs(CD2)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt2, []); % title('2-D WAVELET'); CA2= uint8([abs(CA2)]); % figure,imshow(CA2); % title('RESULTANT IMAGE-2'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA3,CH3,CV3,CD3] = lwt2(double(Block(:,:,3)),LS); imlwt3=[abs(CA3) abs(CH3); abs(CV3) abs(CD3)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt3, []); % title('2-D WAVELET'); CA3= uint8([abs(CA3)]); % figure,imshow(CA3); % title('RESULTANT IMAGE-3'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA4,CH4,CV4,CD4] = lwt2(double(Block(:,:,4)),LS); imlwt4=[abs(CA4) abs(CH4); abs(CV4) abs(CD4)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt4, []); % title('2-D WAVELET'); CA4= uint8([abs(CA4)]); % figure,imshow(CA4); % title('RESULTANT IMAGE-4'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA5,CH5,CV5,CD5] = lwt2(double(Block(:,:,5)),LS); imlwt5=[abs(CA5) abs(CH5); abs(CV5) abs(CD5)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt5, []); % title('2-D WAVELET'); CA5= uint8([abs(CA5)]); % figure,imshow(CA5); % title('RESULTANT IMAGE-5'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA6,CH6,CV6,CD6] = lwt2(double(Block(:,:,6)),LS); imlwt6=[abs(CA6) abs(CH6); abs(CV6) abs(CD6)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt6, []); % title('2-D WAVELET'); CA6= uint8([abs(CA6)]); % figure,imshow(CA6); % title('RESULTANT IMAGE-6'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA7,CH7,CV7,CD7] = lwt2(double(Block(:,:,7)),LS); imlwt7=[abs(CA7) abs(CH7); abs(CV7) abs(CD7)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt7, []); % title('2-D WAVELET'); CA7=uint8([abs(CA7)]); % figure,imshow(CA7); % title('RESULTANT IMAGE-7'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA8,CH8,CV8,CD8] = lwt2(double(Block(:,:,8)),LS); imlwt8=[abs(CA8) abs(CH8); abs(CV8) abs(CD8)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt8, []); % title('2-D WAVELET'); CA8= uint8([abs(CA8)]); % figure,imshow(CA8); % title('RESULTANT IMAGE-8'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA9,CH9,CV9,CD9] = lwt2(double(Block(:,:,9)),LS); imlwt9=[abs(CA9) abs(CH9); abs(CV9) abs(CD9)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt9, []); % title('2-D WAVELET'); CA9= uint8([abs(CA9)]); % figure,imshow(CA9); % title('RESULTANT IMAGE-9'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA10,CH10,CV10,CD10] = lwt2(double(Block(:,:,10)),LS); imlwt10=[abs(CA10) abs(CH10); abs(CV10) abs(CD10)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt10, []); % title('2-D WAVELET'); CA10= uint8([abs(CA10)]); % figure,imshow(CA10); % title('RESULTANT IMAGE-10'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA11,CH11,CV11,CD11] = lwt2(double(Block(:,:,11)),LS); imlwt11=[abs(CA11) abs(CH11); abs(CV11) abs(CD11)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt11, []); % title('2-D WAVELET'); CA11= uint8([abs(CA11)]); % figure,imshow(CA11); % title('RESULTANT IMAGE-11'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA12,CH12,CV12,CD12] = lwt2(double(Block(:,:,12)),LS); imlwt12=[abs(CA12) abs(CH12); abs(CV12) abs(CD12)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt12, []); % title('2-D WAVELET'); CA12= uint8([abs(CA12)]); % figure,imshow(CA12); % title('RESULTANT IMAGE-12'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA13,CH13,CV13,CD13] = lwt2(double(Block(:,:,13)),LS); imlwt13=[abs(CA13) abs(CH13); abs(CV13) abs(CD13)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt13, []); % title('2-D WAVELET'); CA13= uint8([abs(CA13)]); % figure,imshow(CA13); % title('RESULTANT IMAGE-13'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA14,CH14,CV14,CD14] = lwt2(double(Block(:,:,14)),LS); imlwt14=[abs(CA14) abs(CH14); abs(CV14) abs(CD14)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt14, []); % title('2-D WAVELET'); CA14= uint8([abs(CA14)]); % figure,imshow(CA14); % title('RESULTANT IMAGE-14'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA15,CH15,CV15,CD15] = lwt2(double(Block(:,:,15)),LS); imlwt15=[abs(CA15) abs(CH15); abs(CV15) abs(CD15)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt15, []); % title('2-D WAVELET'); CA15= uint8([abs(CA15)]); % figure,imshow(CA15); % title('RESULTANT IMAGE-15'); % ------------------------------------------------------------------------------------------------------------------ % ------------------------------------------------------------------------------------------------------------------ LS = liftwave('cdf2.2','Int2Int'); [CA16,CH16,CV16,CD16] = lwt2(double(Block(:,:,16)),LS); imlwt16=[abs(CA16) abs(CH16); abs(CV16) abs(CD16)]; % display the absolute value of 1D-IWT coeff % figure,imshow(imlwt16, []); % title('2-D WAVELET'); CA16= uint8([abs(CA16)]); % figure,imshow(CA16); % title('RESULTANT IMAGE-16'); % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- T=10; [m n]=size(CA1); for i=1:m for j=1:n if ((abs(CA1(i,j)))< T) CA1(i,j)=CA1(i,j); elseif ((abs(CA1(i,j)))>= T) CA1(i,j)=(sign(CA1(i,j))*(floor((abs(CA1(i,j))-T)/2))+T); end end end % figure,imshow(CA1); % title('COMPRESSED IMAGE-1'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA2); for i=1:m for j=1:n if ((abs(CA2(i,j)))< T) CA2(i,j)=CA2(i,j); elseif ((abs(CA2(i,j)))>= T) CA2(i,j)=(sign(CA2(i,j))*(floor((abs(CA2(i,j))-T)/2))+T); end end end % figure,imshow(CA2); % title('COMPRESSED IMAGE-2'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA3); for i=1:m for j=1:n if ((abs(CA3(i,j)))< T) CA3(i,j)=CA3(i,j); elseif ((abs(CA3(i,j)))>= T) CA3(i,j)=(sign(CA3(i,j))*(floor((abs(CA3(i,j))-T)/2))+T); end end end % figure,imshow(CA3); % title('COMPRESSED IMAGE-3'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA4); for i=1:m for j=1:n if ((abs(CA4(i,j)))< T) CA4(i,j)=CA4(i,j); elseif ((abs(CA4(i,j)))>= T) CA4(i,j)=(sign(CA4(i,j))*(floor((abs(CA4(i,j))-T)/2))+T); end end end % figure,imshow(CA4); % title('COMPRESSED IMAGE-4'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA5); for i=1:m for j=1:n if ((abs(CA5(i,j)))< T) CA5(i,j)=CA5(i,j); elseif ((abs(CA5(i,j)))>= T) CA5(i,j)=(sign(CA5(i,j))*(floor((abs(CA5(i,j))-T)/2))+T); end end end % figure,imshow(CA5); % title('COMPRESSED IMAGE-5'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA6); for i=1:m for j=1:n if ((abs(CA6(i,j)))< T) CA6(i,j)=CA6(i,j); elseif ((abs(CA6(i,j)))>= T) CA6(i,j)=(sign(CA6(i,j))*(floor((abs(CA6(i,j))-T)/2))+T); end end end % figure,imshow(CA6); % title('COMPRESSED IMAGE-6'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA7); for i=1:m for j=1:n if ((abs(CA7(i,j)))< T) CA7(i,j)=CA7(i,j); elseif ((abs(CA7(i,j)))>= T) CA7(i,j)=(sign(CA7(i,j))*(floor((abs(CA7(i,j))-T)/2))+T); end end end % figure,imshow(CA7); % title('COMPRESSED IMAGE-7'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA8); for i=1:m for j=1:n if ((abs(CA8(i,j)))< T) CA8(i,j)=CA8(i,j); elseif ((abs(CA8(i,j)))>= T) CA8(i,j)=(sign(CA8(i,j))*(floor((abs(CA8(i,j))-T)/2))+T); end end end % figure,imshow(CA8); % title('COMPRESSED IMAGE-8'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA9); for i=1:m for j=1:n if ((abs(CA9(i,j)))< T) CA9(i,j)=CA9(i,j); elseif ((abs(CA9(i,j)))>= T) CA9(i,j)=(sign(CA9(i,j))*(floor((abs(CA9(i,j))-T)/2))+T); end end end % figure,imshow(CA9); % title('COMPRESSED IMAGE-9'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA10); for i=1:m for j=1:n if ((abs(CA10(i,j)))< T) CA10(i,j)=CA10(i,j); elseif ((abs(CA10(i,j)))>= T) CA10(i,j)=(sign(CA10(i,j))*(floor((abs(CA10(i,j))-T)/2))+T); end end end % figure,imshow(CA10); % title('COMPRESSED IMAGE-10'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA11); for i=1:m for j=1:n if ((abs(CA11(i,j)))< T) CA11(i,j)=CA11(i,j); elseif ((abs(CA11(i,j)))>= T) CA11(i,j)=(sign(CA11(i,j))*(floor((abs(CA11(i,j))-T)/2))+T); end end end % figure,imshow(CA11); % title('COMPRESSED IMAGE-11'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA12); for i=1:m for j=1:n if ((abs(CA12(i,j)))< T) CA12(i,j)=CA12(i,j); elseif ((abs(CA12(i,j)))>= T) CA12(i,j)=(sign(CA12(i,j))*(floor((abs(CA12(i,j))-T)/2))+T); end end end % figure,imshow(CA12); % title('COMPRESSED IMAGE-12'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA13); for i=1:m for j=1:n if ((abs(CA13(i,j)))< T) CA13(i,j)=CA13(i,j); elseif ((abs(CA13(i,j)))>= T) CA13(i,j)=(sign(CA13(i,j))*(floor((abs(CA13(i,j))-T)/2))+T); end end end % figure,imshow(CA13); % title('COMPRESSED IMAGE-13'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA14); for i=1:m for j=1:n if ((abs(CA14(i,j)))< T) CA14(i,j)=CA14(i,j); elseif ((abs(CA14(i,j)))>= T) CA14(i,j)=(sign(CA14(i,j))*(floor((abs(CA14(i,j))-T)/2))+T); end end end % figure,imshow(CA14); % title('COMPRESSED IMAGE-14'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA15); for i=1:m for j=1:n if ((abs(CA15(i,j)))< T) CA15(i,j)=CA15(i,j); elseif ((abs(CA15(i,j)))>= T) CA15(i,j)=(sign(CA15(i,j))*(floor((abs(CA15(i,j))-T)/2))+T); end end end % figure,imshow(CA15); % title('COMPRESSED IMAGE-15'); % ----------------------------------------------------------------------------------------------------------------------- % ----------------------------------------------------------------------------------------------------------------------- T=10; [m n]=size(CA16); for i=1:m for j=1:n if ((abs(CA16(i,j)))< T) CA16(i,j)=CA16(i,j); elseif ((abs(CA16(i,j)))>= T) CA16(i,j)=(sign(CA16(i,j))*(floor((abs(CA16(i,j))-T)/2))+T); end end end % figure,imshow(CA16); % title('COMPRESSED IMAGE-16'); % ----------------------------------------------------------------------------------------------------------------------- % --------------------------------------------------------------------------------------------------------------------------- for i=1:32 for j=1:32 CA1(i,j) = 2*CA1(i,j)+0; end end % figure,imshow(CA1); % title('EMBEDDED IMAGE-1'); for i=1:32 for j=1:32 CA2(i,j) = 2*CA2(i,j)+0; end end % figure,imshow(CA2); % title('EMBEDDED IMAGE-2'); for i=1:32 for j=1:32 CA3(i,j) = 2*CA3(i,j)+1; end end % figure,imshow(CA3); % title('EMBEDDED IMAGE-3'); for i=1:32 for j=1:32 CA4(i,j) = 2*CA4(i,j)+1; end end % figure,imshow(CA4); % title('EMBEDDED IMAGE-4'); for i=1:32 for j=1:32 CA5(i,j) = 2*CA5(i,j)+0; end end % figure,imshow(CA5); % title('EMBEDDED IMAGE-5'); for i=1:32 for j=1:32 CA6(i,j) = 2*CA6(i,j)+1; end end % figure,imshow(CA6); % title('EMBEDDED IMAGE-6'); for i=1:32 for j=1:32 CA7(i,j) = 2*CA7(i,j)+1; end end % figure,imshow(CA7); % title('EMBEDDED IMAGE-7'); for i=1:32 for j=1:32 CA8(i,j) = 2*CA8(i,j)+0; end end % figure,imshow(CA8); % title('EMBEDDED IMAGE-8'); for i=1:32 for j=1:32 CA9(i,j) = 2*CA9(i,j)+0; end end % figure,imshow(CA9); % title('EMBEDDED IMAGE-9'); for i=1:32 for j=1:32 CA10(i,j) = 2*CA10(i,j)+1; end end % figure,imshow(CA10); % title('EMBEDDED IMAGE-10'); for i=1:32 for j=1:32 CA11(i,j) = 2*CA11(i,j)+1; end end % figure,imshow(CA11); % title('EMBEDDED IMAGE-11'); for i=1:32 for j=1:32 CA12(i,j) = 2*CA12(i,j)+0; end end % figure,imshow(CA12); % title('EMBEDDED IMAGE-12'); for i=1:32 for j=1:32 CA13(i,j) = 2*CA13(i,j)+1; end end % figure,imshow(CA13); % title('EMBEDDED IMAGE-13'); for i=1:32 for j=1:32 CA14(i,j) = 2*CA14(i,j)+0; end end % figure,imshow(CA14); % title('EMBEDDED IMAGE-14'); for i=1:32 for j=1:32 CA15(i,j) = 2*CA15(i,j)+1; end end % figure,imshow(CA15); % title('EMBEDDED IMAGE-15'); for i=1:32 for j=1:32 CA16(i,j) = 2*CA16(i,j)+1; end end % figure,imshow(CA16); % title('EMBEDDED IMAGE-16'); % --------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % -------------------------------------- X1 = idwt2(CA1,CH1,CV1,CD1,'db1'); % figure,imshow(X1,[]); % title('INVERSE IWT1'); X2= idwt2(CA2,CH2,CV2,CD2,'db1'); % figure,imshow(X2,[]); % title('INVERSE IWT2'); X3 = idwt2(CA3,CH3,CV3,CD3,'db1'); % figure,imshow(X3,[]); % title('INVERSE IWT3'); X4= idwt2(CA4,CH4,CV4,CD4,'db1'); % figure,imshow(X4,[]); % title('INVERSE IWT4'); X5= idwt2(CA5,CH5,CV5,CD5,'db1'); % figure,imshow(X5,[]); % title('INVERSE IWT5'); X6= idwt2(CA6,CH6,CV6,CD6,'db1'); % figure,imshow(X6,[]); % title('INVERSE IWT6'); X7= idwt2(CA7,CH7,CV7,CD7,'db1'); % figure,imshow(X7,[]); % title('INVERSE IWT7'); X8= idwt2(CA8,CH8,CV8,CD8,'db1'); % figure,imshow(X8,[]); % title('INVERSE IWT8'); X9= idwt2(CA9,CH9,CV9,CD9,'db1'); % figure,imshow(X9,[]); % title('INVERSE IWT9'); X10= idwt2(CA10,CH10,CV10,CD10,'db1'); % figure,imshow(X10,[]); % title('INVERSE IWT10'); X11= idwt2(CA11,CH11,CV11,CD11,'db1'); % figure,imshow(X11,[]); % title('INVERSE IWT11'); X12= idwt2(CA12,CH12,CV12,CD12,'db1'); % figure,imshow(X12,[]); % title('INVERSE IWT12'); X13= idwt2(CA13,CH13,CV13,CD13,'db1'); % figure,imshow(X13,[]); % title('INVERSE IWT13'); X14= idwt2(CA14,CH14,CV14,CD14,'db1'); % figure,imshow(X14,[]); % title('INVERSE IWT14'); X15= idwt2(CA15,CH15,CV15,CD15,'db1'); % figure,imshow(X15,[]); % title('INVERSE IWT15'); X16= idwt2(CA16,CH16,CV16,CD16,'db1'); % figure,imshow(X16,[]); % title('INVERSE IWT16'); %----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------ %check whether underflow or overflow for each block Tmap=zeros(n,n); Xmin=min(X1(i,:)); for i=2:64 if(min(X1(i,:))<Xmin) Xmin=min(X1(i,:)); end end
Xmax=max(X1(i,:)); for i=2:64 if(max(X1(i,:))>Xmax) Xmax=max(X1(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt1(x,y))-(X1(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(1,1)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(1,1)=T; else [m n]=size(CA1); for i1=1:m for j=1:n if ((abs(CA1(i1,j)))< T) CA1(i1,j)=CA1(i1,j); elseif ((abs(CA1(i1,j)))>= T) CA1(i1,j)=(sign(CA1(i1,j))*(floor((abs(CA1(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA1(i2,j2) = 2*CA1(i2,j2)+0; end end X1 = idwt2(CA1,CH1,CV1,CD1,'db1'); end end if(X==1) Tmap(1,1)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------------------------------------------------- Xmin=min(X2(i,:)); for i=2:64 if(min(X2(i,:))<Xmin) Xmin=min(X2(i,:)); end end disp(Xmin);
Xmax=max(X2(i,:)); for i=2:64 if(max(X2(i,:))>Xmax) Xmax=max(X2(i,:)); end end disp(Xmax);
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt2(x,y))-(X2(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(2,2)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(1,2)=T; else [m n]=size(CA2); for i1=1:m for j=1:n if ((abs(CA2(i1,j)))< T) CA2(i1,j)=CA2(i1,j); elseif ((abs(CA2(i1,j)))>= T) CA2(i1,j)=(sign(CA2(i1,j))*(floor((abs(CA2(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA2(i2,j2) = 2*CA2(i2,j2)+0; end end X2 = idwt2(CA2,CH2,CV2,CD2,'db1'); end end if(X==1) Tmap(2,2)=0; disp(X); end %----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X3(i,:)); for i=2:64 if(min(X3(i,:))<Xmin) Xmin=min(X3(i,:)); end end disp(Xmin);
Xmax=max(X3(i,:)); for i=2:64 if(max(X3(i,:))>Xmax) Xmax=max(X3(i,:)); end end disp(Xmax);
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt3(x,y))-(X3(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(1,3)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(1,3)=T; else [m n]=size(CA3); for i1=1:m for j=1:n if ((abs(CA3(i1,j)))< T) CA3(i1,j)=CA3(i1,j); elseif ((abs(CA3(i1,j)))>= T) CA3(i1,j)=(sign(CA3(i1,j))*(floor((abs(CA3(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA3(i2,j2) = 2*CA3(i2,j2)+0; end end X3 = idwt2(CA3,CH3,CV3,CD3,'db1'); end end if(X==1) Tmap(1,3)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X4(i,:)); for i=2:64 if(min(X4(i,:))<Xmin) Xmin=min(X4(i,:)); end end
Xmax=max(X4(i,:)); for i=2:64 if(max(X4(i,:))>Xmax) Xmax=max(X4(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt4(x,y))-(X4(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(1,4)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(1,4)=T; else [m n]=size(CA4); for i1=1:m for j=1:n if ((abs(CA4(i1,j)))< T) CA4(i1,j)=CA4(i1,j); elseif ((abs(CA4(i1,j)))>= T) CA4(i1,j)=(sign(CA4(i1,j))*(floor((abs(CA4(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA4(i2,j2) = 2*CA4(i2,j2)+0; end end X4 = idwt2(CA4,CH4,CV4,CD4,'db1'); end end if(X==1) Tmap(1,4)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X5(i,:)); for i=2:64 if(min(X5(i,:))<Xmin) Xmin=min(X5(i,:)); end end
Xmax=max(X5(i,:)); for i=2:64 if(max(X5(i,:))>Xmax) Xmax=max(X5(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt5(x,y))-(X5(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(2,1)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(2,1)=T; else [m n]=size(CA5); for i1=1:m for j=1:n if ((abs(CA5(i1,j)))< T) CA5(i1,j)=CA5(i1,j); elseif ((abs(CA5(i1,j)))>= T) CA5(i1,j)=(sign(CA5(i1,j))*(floor((abs(CA5(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA5(i2,j2) = 2*CA5(i2,j2)+0; end end X5 = idwt2(CA5,CH5,CV5,CD5,'db1'); end end if(X==1) Tmap(2,1)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X6(i,:)); for i=2:64 if(min(X6(i,:))<Xmin) Xmin=min(X6(i,:)); end end
Xmax=max(X6(i,:)); for i=2:64 if(max(X6(i,:))>Xmax) Xmax=max(X1(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt6(x,y))-(X6(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(2,2)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(2,2)=T; else [m n]=size(CA6); for i1=1:m for j=1:n if ((abs(CA6(i1,j)))< T) CA6(i1,j)=CA6(i1,j); elseif ((abs(CA6(i1,j)))>= T) CA6(i1,j)=(sign(CA6(i1,j))*(floor((abs(CA6(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA6(i2,j2) = 2*CA6(i2,j2)+0; end end X6 = idwt2(CA6,CH6,CV6,CD6,'db1'); end end if(X==1) Tmap(2,2)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X7(i,:)); for i=2:64 if(min(X7(i,:))<Xmin) Xmin=min(X7(i,:)); end end
Xmax=max(X7(i,:)); for i=2:64 if(max(X7(i,:))>Xmax) Xmax=max(X7(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt7(x,y))-(X7(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(2,3)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(2,3)=T; else [m n]=size(CA7); for i1=1:m for j=1:n if ((abs(CA7(i1,j)))< T) CA7(i1,j)=CA7(i1,j); elseif ((abs(CA7(i1,j)))>= T) CA7(i1,j)=(sign(CA7(i1,j))*(floor((abs(CA7(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA7(i2,j2) = 2*CA7(i2,j2)+0; end end X7 = idwt2(CA7,CH7,CV7,CD7,'db1'); end end if(X==1) Tmap(2,3)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X8(i,:)); for i=2:64 if(min(X8(i,:))<Xmin) Xmin=min(X8(i,:)); end end
Xmax=max(X8(i,:)); for i=2:64 if(max(X8(i,:))>Xmax) Xmax=max(X8(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt8(x,y))-(X8(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(2,4)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(2,4)=T; else [m n]=size(CA8); for i1=1:m for j=1:n if ((abs(CA8(i1,j)))< T) CA8(i1,j)=CA8(i1,j); elseif ((abs(CA8(i1,j)))>= T) CA8(i1,j)=(sign(CA8(i1,j))*(floor((abs(CA8(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA8(i2,j2) = 2*CA8(i2,j2)+0; end end X8 = idwt2(CA8,CH8,CV8,CD8,'db1'); end end if(X==1) Tmap(2,4)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X9(i,:)); for i=2:64 if(min(X9(i,:))<Xmin) Xmin=min(X9(i,:)); end end
Xmax=max(X9(i,:)); for i=2:64 if(max(X9(i,:))>Xmax) Xmax=max(X9(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt9(x,y))-(X9(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(3,1)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(3,1)=T; else [m n]=size(CA9); for i1=1:m for j=1:n if ((abs(CA9(i1,j)))< T) CA9(i1,j)=CA9(i1,j); elseif ((abs(CA9(i1,j)))>= T) CA9(i1,j)=(sign(CA9(i1,j))*(floor((abs(CA9(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA9(i2,j2) = 2*CA9(i2,j2)+0; end end X9 = idwt2(CA9,CH9,CV9,CD9,'db1'); end end if(X==1) Tmap(3,1)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X10(i,:)); for i=2:64 if(min(X10(i,:))<Xmin) Xmin=min(X10(i,:)); end end
Xmax=max(X10(i,:)); for i=2:64 if(max(X10(i,:))>Xmax) Xmax=max(X10(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt10(x,y))-(X10(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(3,2)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(3,2)=T; else [m n]=size(CA10); for i1=1:m for j=1:n if ((abs(CA10(i1,j)))< T) CA10(i1,j)=CA10(i1,j); elseif ((abs(CA10(i1,j)))>= T) CA10(i1,j)=(sign(CA10(i1,j))*(floor((abs(CA10(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA10(i2,j2) = 2*CA10(i2,j2)+0; end end X10 = idwt2(CA10,CH10,CV10,CD10,'db1'); end end if(X==1) Tmap(3,2)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X11(i,:)); for i=2:64 if(min(X11(i,:))<Xmin) Xmin=min(X11(i,:)); end end
Xmax=max(X11(i,:)); for i=2:64 if(max(X11(i,:))>Xmax) Xmax=max(X11(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt11(x,y))-(X11(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(3,3)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(3,3)=T; else [m n]=size(CA11); for i1=1:m for j=1:n if ((abs(CA11(i1,j)))< T) CA11(i1,j)=CA11(i1,j); elseif ((abs(CA11(i1,j)))>= T) CA11(i1,j)=(sign(CA11(i1,j))*(floor((abs(CA11(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA11(i2,j2) = 2*CA11(i2,j2)+0; end end X11 = idwt2(CA11,CH11,CV11,CD11,'db1'); end end if(X==1) Tmap(3,3)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X12(i,:)); for i=2:64 if(min(X12(i,:))<Xmin) Xmin=min(X12(i,:)); end end
Xmax=max(X12(i,:)); for i=2:64 if(max(X12(i,:))>Xmax) Xmax=max(X12(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt12(x,y))-(X12(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(3,4)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(3,4)=T; else [m n]=size(CA12); for i1=1:m for j=1:n if ((abs(CA12(i1,j)))< T) CA12(i1,j)=CA12(i1,j); elseif ((abs(CA12(i1,j)))>= T) CA12(i1,j)=(sign(CA12(i1,j))*(floor((abs(CA12(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA12(i2,j2) = 2*CA12(i2,j2)+0; end end X12 = idwt2(CA12,CH12,CV12,CD12,'db1'); end end if(X==1) Tmap(3,4)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X13(i,:)); for i=2:64 if(min(X13(i,:))<Xmin) Xmin=min(X13(i,:)); end end
Xmax=max(X13(i,:)); for i=2:64 if(max(X13(i,:))>Xmax) Xmax=max(X13(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt13(x,y))-(X13(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(4,1)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(4,1)=T; else [m n]=size(CA13); for i1=1:m for j=1:n if ((abs(CA13(i1,j)))< T) CA13(i1,j)=CA13(i1,j); elseif ((abs(CA13(i1,j)))>= T) CA13(i1,j)=(sign(CA13(i1,j))*(floor((abs(CA13(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA13(i2,j2) = 2*CA13(i2,j2)+0; end end X13 = idwt2(CA13,CH13,CV13,CD13,'db1'); end end if(X==1) Tmap(4,1)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X14(i,:)); for i=2:64 if(min(X14(i,:))<Xmin) Xmin=min(X14(i,:)); end end
Xmax=max(X14(i,:)); for i=2:64 if(max(X14(i,:))>Xmax) Xmax=max(X14(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt14(x,y))-(X14(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(4,2)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(4,2)=T; else [m n]=size(CA14); for i1=1:m for j=1:n if ((abs(CA14(i1,j)))< T) CA14(i1,j)=CA14(i1,j); elseif ((abs(CA14(i1,j)))>= T) CA14(i1,j)=(sign(CA14(i1,j))*(floor((abs(CA14(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA14(i2,j2) = 2*CA14(i2,j2)+0; end end X14 = idwt2(CA14,CH14,CV14,CD14,'db1'); end end if(X==1) Tmap(4,2)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X15(i,:)); for i=2:64 if(min(X15(i,:))<Xmin) Xmin=min(X15(i,:)); end end
Xmax=max(X15(i,:)); for i=2:64 if(max(X15(i,:))>Xmax) Xmax=max(X15(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt15(x,y))-(X15(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(4,3)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(4,3)=T; else [m n]=size(CA15); for i1=1:m for j=1:n if ((abs(CA15(i1,j)))< T) CA15(i1,j)=CA15(i1,j); elseif ((abs(CA15(i1,j)))>= T) CA15(i1,j)=(sign(CA15(i1,j))*(floor((abs(CA15(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA15(i2,j2) = 2*CA15(i2,j2)+0; end end X15 = idwt2(CA15,CH15,CV15,CD15,'db1'); end end if(X==1) Tmap(4,3)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------%----------------------------------------------------------------------------------------------------------------------------------- %------------------------------------------------------------------------------------------------------------------------------------
Xmin=min(X16(i,:)); for i=2:64 if(min(X16(i,:))<Xmin) Xmin=min(X16(i,:)); end end
Xmax=max(X16(i,:)); for i=2:64 if(max(X16(i,:))>Xmax) Xmax=max(X16(i,:)); end end
T=10; if ((Xmin>=0) && (Xmax<=255)) X=0; else X=1; end if (X==0) % PSNR calculation M=64; N=64; for y=1:64 for x=1:64 MSE=(1/(M*N))*((imlwt16(x,y))-(X16(x,y)))^2; end end disp('MSE---->'); disp(MSE); PSNR=10*log10((255^2)/MSE); disp('PSNR---->'); disp(PSNR); PSNRmax=40; if (PSNR>=PSNRmax) Tmap(4,4)=T; else T=T-1; Tmin=2; if(T<=Tmin) Tmap(4,4)=T; else [m n]=size(CA16); for i1=1:m for j=1:n if ((abs(CA16(i1,j)))< T) CA16(i1,j)=CA16(i1,j); elseif ((abs(CA16(i1,j)))>= T) CA16(i1,j)=(sign(CA16(i1,j))*(floor((abs(CA16(i1,j))-T)/2))+T); end end end end for i2=1:32 for j2=1:32 CA16(i2,j2) = 2*CA16(i2,j2)+0; end end X16 = idwt2(CA16,CH16,CV16,CD16,'db1'); end end if(X==1) Tmap(4,4)=0; disp(X); end % ------------------------------------------------------------------------------------------------------------------- % ------------------------------------------------------------------------- % ------------------------------------------
% combine all the blocks % Block1={CA1 CA2 CA3 CA4;CA5 CA6 CA7 CA8;CA9 CA10 CA11 CA12;CA13 CA14 CA15 CA16}; % meanValues = cellfun(@(x) mean(x(:)),Block1); % varValues = cellfun(@(x) var(double(x(:))),Block1); % original = cell2mat(Block1); % figure,imshow(original);
回答(0 个)
此问题已关闭。
类别
在 帮助中心 和 File Exchange 中查找有关 Image Quality 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!