Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear;
- close all;
- picture = imread('C:\Users\Tuhlomon\Desktop\Bright_2.bmp');
- H = size(picture, 1);
- W = size(picture, 2);
- Y = zeros(H, W);
- for i = 1:H
- for j = 1:W
- Y(i, j) = picture(i, j, 1)*0.299 + picture(i, j, 2)*0.587 + picture(i, j, 3)*0.114;
- end
- end
- histogram = zeros (H*W, 1);
- for i = 1:H
- for j = 1:W
- histogram((j-1)*H + i, 1) = Y(i, j);
- end
- end
- figure(1);
- hist(histogram, 128);
- U = zeros(H, W, 7);
- delta = [0, 0, 0, 0, 0, 0, 0];
- for R = 1:7
- quants = 2^R;
- delta(R) = 256/quants;
- for i = 1:H
- for j = 1:W
- U(i, j, R) = delta(R)*fix(Y(i, j)/delta(R)) + delta(R)/2;
- end
- end
- end
- SNR = zeros (7, 1);
- A = Y.^2;
- for R = 1:7
- B = (Y-U(:, :, R)).^2;
- SNR(R) = 10*log10(sum(A)/sum(B));
- end
- t = 1:1:7;
- figure(2);
- plot(t, SNR), legend('SNR(R)_1');
- hold on;
- % imwrite(U(:,:,1)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R1.bmp');
- % imwrite(U(:,:,2)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R2.bmp');
- % imwrite(U(:,:,3)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R3.bmp');
- % imwrite(U(:,:,4)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R4.bmp');
- % imwrite(U(:,:,5)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R5.bmp');
- % imwrite(U(:,:,6)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R6.bmp');
- % imwrite(U(:,:,7)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R7.bmp');
- PSNR = zeros (7, 1);
- for R = 1:7
- epsilon = 0;
- for i = 1:H
- for j = 1:W
- epsilon = epsilon + (U(i, j, R) - Y(i, j))^2;
- end
- end
- PSNR(R) = 10*log10(W*H*(255^2)/epsilon);
- end
- figure(3);
- plot(t, PSNR), legend('PSNR(R)_1');
- hold on;
- He = zeros (7, 1);
- for R = 1:7
- p = zeros(2^R, 1);
- for i = 1:H
- for j = 1:W
- index = 1 + fix(U(i, j, R)/delta(R));
- p(index) = p(index)+1;
- end
- end
- for i = 1:2^R
- if p(i) ~= 0
- p(i) = p(i)/(H*W);
- He(R) = He(R) + (p(i)*log2(p(i)));
- end
- end
- He(R) = -He(R);
- end
- figure(4);
- plot(He, PSNR), legend('PSNR(H)_1');
- hold on;
- picture = imread('C:\Users\Tuhlomon\Desktop\dark_2.bmp');
- H = size(picture, 1);
- W = size(picture, 2);
- Y = zeros(H, W);
- for i = 1:H
- for j = 1:W
- Y(i, j) = picture(i, j, 1)*0.299 + picture(i, j, 2)*0.587 + picture(i, j, 3)*0.114;
- end
- end
- histogram = zeros (H*W, 1);
- for i = 1:H
- for j = 1:W
- histogram((j-1)*H + i, 1) = Y(i, j);
- end
- end
- figure(8);
- hist(histogram, 128);
- U = zeros(H, W, 7);
- delta = [0, 0, 0, 0, 0, 0, 0];
- for R = 1:7
- quants = 2^R;
- delta(R) = 256/quants;
- for i = 1:H
- for j = 1:W
- U(i, j, R) = delta(R)*fix(Y(i, j)/delta(R)) + delta(R)/2;
- end
- end
- end
- SNR = zeros (7, 1);
- A = Y.^2;
- for R = 1:7
- B = (Y-U(:, :, R)).^2;
- SNR(R) = 10*log10(sum(A)/sum(B));
- end
- t = 1:1:7;
- figure(2);
- plot(t, SNR), legend('SNR(R)_2');
- hold on;
- % imwrite(U(:,:,1)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R1.bmp');
- % imwrite(U(:,:,2)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R2.bmp');
- % imwrite(U(:,:,3)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R3.bmp');
- % imwrite(U(:,:,4)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R4.bmp');
- % imwrite(U(:,:,5)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R5.bmp');
- % imwrite(U(:,:,6)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R6.bmp');
- % imwrite(U(:,:,7)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R7.bmp');
- PSNR = zeros (7, 1);
- for R = 1:7
- epsilon = 0;
- for i = 1:H
- for j = 1:W
- epsilon = epsilon + (U(i, j, R) - Y(i, j))^2;
- end
- end
- PSNR(R) = 10*log10(W*H*(255^2)/epsilon);
- end
- figure(3);
- plot(t, PSNR), legend('PSNR(R)_2');
- hold on;
- He = zeros (7, 1);
- for R = 1:7
- p = zeros(2^R, 1);
- for i = 1:H
- for j = 1:W
- index = 1 + fix(U(i, j, R)/delta(R));
- p(index) = p(index)+1;
- end
- end
- for i = 1:2^R
- if p(i) ~= 0
- p(i) = p(i)/(H*W);
- He(R) = He(R) + (p(i)*log2(p(i)));
- end
- end
- He(R) = -He(R);
- end
- figure(4);
- plot(He, PSNR), legend('PSNR(H)_2');
- hold on;
- picture = imread('C:\Users\Tuhlomon\Desktop\lenna.ppm');
- H = size(picture, 1);
- W = size(picture, 2);
- Y = zeros(H, W);
- for i = 1:H
- for j = 1:W
- Y(i, j) = picture(i, j, 1)*0.299 + picture(i, j, 2)*0.587 + picture(i, j, 3)*0.114;
- end
- end
- histogram = zeros (H*W, 1);
- for i = 1:H
- for j = 1:W
- histogram((j-1)*H + i, 1) = Y(i, j);
- end
- end
- figure(9);
- hist(histogram, 128);
- U = zeros(H, W, 7);
- delta = [0, 0, 0, 0, 0, 0, 0];
- for R = 1:7
- quants = 2^R;
- delta(R) = 256/quants;
- for i = 1:H
- for j = 1:W
- U(i, j, R) = delta(R)*fix(Y(i, j)/delta(R)) + delta(R)/2;
- end
- end
- end
- SNR = zeros (7, 1);
- A = Y.^2;
- for R = 1:7
- B = (Y-U(:, :, R)).^2;
- SNR(R) = 10*log10(sum(A)/sum(B));
- end
- t = 1:1:7;
- figure(2);
- plot(t, SNR), legend('SNR(R)_1', 'SNR(R)_2', 'SNR(R)_3');
- % imwrite(U(:,:,1)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R1.bmp');
- % imwrite(U(:,:,2)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R2.bmp');
- % imwrite(U(:,:,3)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R3.bmp');
- % imwrite(U(:,:,4)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R4.bmp');
- % imwrite(U(:,:,5)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R5.bmp');
- % imwrite(U(:,:,6)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R6.bmp');
- % imwrite(U(:,:,7)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R7.bmp');
- PSNR = zeros (7, 1);
- for R = 1:7
- epsilon = 0;
- for i = 1:H
- for j = 1:W
- epsilon = epsilon + (U(i, j, R) - Y(i, j))^2;
- end
- end
- PSNR(R) = 10*log10(W*H*(255^2)/epsilon);
- end
- figure(3);
- plot(t, PSNR), legend('PSNR(R)_1', 'PSNR(R)_2', 'PSNR(R)_3');
- He = zeros (7, 1);
- for R = 1:7
- p = zeros(2^R, 1);
- for i = 1:H
- for j = 1:W
- index = 1 + fix(U(i, j, R)/delta(R));
- p(index) = p(index)+1;
- end
- end
- for i = 1:2^R
- if p(i) ~= 0
- p(i) = p(i)/(H*W);
- He(R) = He(R) + (p(i)*log2(p(i)));
- end
- end
- He(R) = -He(R);
- end
- figure(4);
- plot(He, PSNR), legend('PSNR(H)_1', 'PSNR(H)_2', 'PSNR(H)_3');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement