Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.47 KB | None | 0 0
  1. clear;
  2. close all;
  3. picture = imread('C:\Users\Tuhlomon\Desktop\Bright_2.bmp');
  4. H = size(picture, 1);
  5. W = size(picture, 2);
  6. Y = zeros(H, W);
  7. for i = 1:H
  8. for j = 1:W
  9. Y(i, j) = picture(i, j, 1)*0.299 + picture(i, j, 2)*0.587 + picture(i, j, 3)*0.114;
  10. end
  11. end
  12.  
  13. histogram = zeros (H*W, 1);
  14. for i = 1:H
  15. for j = 1:W
  16. histogram((j-1)*H + i, 1) = Y(i, j);
  17. end
  18. end
  19. figure(1);
  20. hist(histogram, 128);
  21.  
  22. U = zeros(H, W, 7);
  23. delta = [0, 0, 0, 0, 0, 0, 0];
  24. for R = 1:7
  25. quants = 2^R;
  26. delta(R) = 256/quants;
  27. for i = 1:H
  28. for j = 1:W
  29. U(i, j, R) = delta(R)*fix(Y(i, j)/delta(R)) + delta(R)/2;
  30. end
  31. end
  32. end
  33. SNR = zeros (7, 1);
  34. A = Y.^2;
  35. for R = 1:7
  36. B = (Y-U(:, :, R)).^2;
  37. SNR(R) = 10*log10(sum(A)/sum(B));
  38. end
  39. t = 1:1:7;
  40. figure(2);
  41. plot(t, SNR), legend('SNR(R)_1');
  42. hold on;
  43. % imwrite(U(:,:,1)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R1.bmp');
  44. % imwrite(U(:,:,2)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R2.bmp');
  45. % imwrite(U(:,:,3)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R3.bmp');
  46. % imwrite(U(:,:,4)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R4.bmp');
  47. % imwrite(U(:,:,5)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R5.bmp');
  48. % imwrite(U(:,:,6)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R6.bmp');
  49. % imwrite(U(:,:,7)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R7.bmp');
  50.  
  51. PSNR = zeros (7, 1);
  52. for R = 1:7
  53. epsilon = 0;
  54. for i = 1:H
  55. for j = 1:W
  56. epsilon = epsilon + (U(i, j, R) - Y(i, j))^2;
  57. end
  58. end
  59. PSNR(R) = 10*log10(W*H*(255^2)/epsilon);
  60. end
  61. figure(3);
  62. plot(t, PSNR), legend('PSNR(R)_1');
  63. hold on;
  64. He = zeros (7, 1);
  65. for R = 1:7
  66. p = zeros(2^R, 1);
  67. for i = 1:H
  68. for j = 1:W
  69. index = 1 + fix(U(i, j, R)/delta(R));
  70. p(index) = p(index)+1;
  71. end
  72. end
  73. for i = 1:2^R
  74. if p(i) ~= 0
  75. p(i) = p(i)/(H*W);
  76. He(R) = He(R) + (p(i)*log2(p(i)));
  77. end
  78. end
  79. He(R) = -He(R);
  80. end
  81. figure(4);
  82. plot(He, PSNR), legend('PSNR(H)_1');
  83. hold on;
  84.  
  85.  
  86.  
  87.  
  88. picture = imread('C:\Users\Tuhlomon\Desktop\dark_2.bmp');
  89. H = size(picture, 1);
  90. W = size(picture, 2);
  91. Y = zeros(H, W);
  92. for i = 1:H
  93. for j = 1:W
  94. Y(i, j) = picture(i, j, 1)*0.299 + picture(i, j, 2)*0.587 + picture(i, j, 3)*0.114;
  95. end
  96. end
  97.  
  98. histogram = zeros (H*W, 1);
  99. for i = 1:H
  100. for j = 1:W
  101. histogram((j-1)*H + i, 1) = Y(i, j);
  102. end
  103. end
  104. figure(8);
  105. hist(histogram, 128);
  106.  
  107. U = zeros(H, W, 7);
  108. delta = [0, 0, 0, 0, 0, 0, 0];
  109. for R = 1:7
  110. quants = 2^R;
  111. delta(R) = 256/quants;
  112. for i = 1:H
  113. for j = 1:W
  114. U(i, j, R) = delta(R)*fix(Y(i, j)/delta(R)) + delta(R)/2;
  115. end
  116. end
  117. end
  118. SNR = zeros (7, 1);
  119. A = Y.^2;
  120. for R = 1:7
  121. B = (Y-U(:, :, R)).^2;
  122. SNR(R) = 10*log10(sum(A)/sum(B));
  123. end
  124. t = 1:1:7;
  125. figure(2);
  126. plot(t, SNR), legend('SNR(R)_2');
  127. hold on;
  128. % imwrite(U(:,:,1)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R1.bmp');
  129. % imwrite(U(:,:,2)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R2.bmp');
  130. % imwrite(U(:,:,3)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R3.bmp');
  131. % imwrite(U(:,:,4)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R4.bmp');
  132. % imwrite(U(:,:,5)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R5.bmp');
  133. % imwrite(U(:,:,6)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R6.bmp');
  134. % imwrite(U(:,:,7)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R7.bmp');
  135.  
  136. PSNR = zeros (7, 1);
  137. for R = 1:7
  138. epsilon = 0;
  139. for i = 1:H
  140. for j = 1:W
  141. epsilon = epsilon + (U(i, j, R) - Y(i, j))^2;
  142. end
  143. end
  144. PSNR(R) = 10*log10(W*H*(255^2)/epsilon);
  145. end
  146. figure(3);
  147. plot(t, PSNR), legend('PSNR(R)_2');
  148. hold on;
  149. He = zeros (7, 1);
  150. for R = 1:7
  151. p = zeros(2^R, 1);
  152. for i = 1:H
  153. for j = 1:W
  154. index = 1 + fix(U(i, j, R)/delta(R));
  155. p(index) = p(index)+1;
  156. end
  157. end
  158. for i = 1:2^R
  159. if p(i) ~= 0
  160. p(i) = p(i)/(H*W);
  161. He(R) = He(R) + (p(i)*log2(p(i)));
  162. end
  163. end
  164. He(R) = -He(R);
  165. end
  166. figure(4);
  167. plot(He, PSNR), legend('PSNR(H)_2');
  168. hold on;
  169.  
  170.  
  171.  
  172.  
  173. picture = imread('C:\Users\Tuhlomon\Desktop\lenna.ppm');
  174. H = size(picture, 1);
  175. W = size(picture, 2);
  176. Y = zeros(H, W);
  177. for i = 1:H
  178. for j = 1:W
  179. Y(i, j) = picture(i, j, 1)*0.299 + picture(i, j, 2)*0.587 + picture(i, j, 3)*0.114;
  180. end
  181. end
  182.  
  183. histogram = zeros (H*W, 1);
  184. for i = 1:H
  185. for j = 1:W
  186. histogram((j-1)*H + i, 1) = Y(i, j);
  187. end
  188. end
  189. figure(9);
  190. hist(histogram, 128);
  191.  
  192. U = zeros(H, W, 7);
  193. delta = [0, 0, 0, 0, 0, 0, 0];
  194. for R = 1:7
  195. quants = 2^R;
  196. delta(R) = 256/quants;
  197. for i = 1:H
  198. for j = 1:W
  199. U(i, j, R) = delta(R)*fix(Y(i, j)/delta(R)) + delta(R)/2;
  200. end
  201. end
  202. end
  203. SNR = zeros (7, 1);
  204. A = Y.^2;
  205. for R = 1:7
  206. B = (Y-U(:, :, R)).^2;
  207. SNR(R) = 10*log10(sum(A)/sum(B));
  208. end
  209. t = 1:1:7;
  210. figure(2);
  211. plot(t, SNR), legend('SNR(R)_1', 'SNR(R)_2', 'SNR(R)_3');
  212.  
  213. % imwrite(U(:,:,1)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R1.bmp');
  214. % imwrite(U(:,:,2)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R2.bmp');
  215. % imwrite(U(:,:,3)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R3.bmp');
  216. % imwrite(U(:,:,4)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R4.bmp');
  217. % imwrite(U(:,:,5)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R5.bmp');
  218. % imwrite(U(:,:,6)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R6.bmp');
  219. % imwrite(U(:,:,7)./255, 'C:\Users\Tuhlomon\Desktop\учеба\цос\tests\R7.bmp');
  220.  
  221. PSNR = zeros (7, 1);
  222. for R = 1:7
  223. epsilon = 0;
  224. for i = 1:H
  225. for j = 1:W
  226. epsilon = epsilon + (U(i, j, R) - Y(i, j))^2;
  227. end
  228. end
  229. PSNR(R) = 10*log10(W*H*(255^2)/epsilon);
  230. end
  231. figure(3);
  232. plot(t, PSNR), legend('PSNR(R)_1', 'PSNR(R)_2', 'PSNR(R)_3');
  233.  
  234. He = zeros (7, 1);
  235. for R = 1:7
  236. p = zeros(2^R, 1);
  237. for i = 1:H
  238. for j = 1:W
  239. index = 1 + fix(U(i, j, R)/delta(R));
  240. p(index) = p(index)+1;
  241. end
  242. end
  243. for i = 1:2^R
  244. if p(i) ~= 0
  245. p(i) = p(i)/(H*W);
  246. He(R) = He(R) + (p(i)*log2(p(i)));
  247. end
  248. end
  249. He(R) = -He(R);
  250. end
  251. figure(4);
  252. plot(He, PSNR), legend('PSNR(H)_1', 'PSNR(H)_2', 'PSNR(H)_3');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement