Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. xc=imread('Lenna.png','PNG');
  2. x=xc(:,:,1);
  3. x2=xc(:,:,2);
  4. x3=xc(:,:,3);
  5. % histogram to fukcja, ile razy wystapiła dana wartość / liczebność dannych. Dzieli zakres na pod zakresy.
  6. % punkt histogramu to na osi y 0,255 a na x ile razy wystąpiło
  7. % 0 256 po grafika 8 bitowa, przy 10 było 2^10
  8.  
  9. % wymiary obrazka musi wiedzieć
  10. [M,N]=size(x);
  11. h=zeros(1,256);
  12. % twprzenie histogramu
  13. for m=1:M
  14. for n=1:N
  15. %histogram
  16. h(x(m,n)+1)=h(x(m,n)+1)+1;
  17. end
  18. end
  19. %kolor czerwony
  20. plot(h)
  21. %obrazek dla porównia
  22. figure(2)
  23.  
  24. imagesc(x)
  25. colormap(gray(256));
  26.  
  27. % pierwszy krok algorytm wyrównywanie histogramu, robi z dysrtybuaty ta całka z tego //
  28. % Y to wszystkie piksele
  29.  
  30. H=cumsum(h)
  31. %dystrybuata o wartosci 256, nigdy nie maleje
  32. P=round(255*H/(M*N));
  33.  
  34.  
  35. figure(3)
  36. %plot(P)
  37. % odwrócona pętla zeby wyrównać pętle
  38.  
  39.  
  40. y1=0*x;
  41.  
  42. for m=1:M
  43. for n=1:N
  44. %histogram
  45. value = x(m,n);
  46. y1(m,n)= P(value+1);
  47. end
  48. end
  49. figure(4)
  50. imagesc(y1)
  51. colormap(gray(256));
  52. h1=zeros(1,256);
  53.  
  54. for m=1:M
  55. for n=1:N
  56. %histogram
  57. h1(y1(m,n)+1)=h1(y1(m,n)+1)+1;
  58. end
  59. end
  60. %histogram nie jest idealnie prosty
  61. H1=cumsum(h1)
  62. figure(5)
  63. plot(H1)
  64.  
  65.  
  66.  
  67.  
  68. % dreugie
  69.  
  70.  
  71. [M,N]=size(x2);
  72. h2=zeros(1,256);
  73. % twprzenie histogramu
  74. for m=1:M
  75. for n=1:N
  76. %histogram
  77. h2(x2(m,n)+1)=h2(x2(m,n)+1)+1;
  78. end
  79. end
  80. %kolor czerwony
  81. plot(h2)
  82. %obrazek dla porównia
  83. figure(2)
  84.  
  85. imagesc(x2)
  86. colormap(gray(256));
  87.  
  88. % pierwszy krok algorytm wyrównywanie histogramu, robi z dysrtybuaty ta całka z tego //
  89. % Y to wszystkie piksele
  90.  
  91. H2=cumsum(h2)
  92. %dystrybuata o wartosci 256, nigdy nie maleje
  93. P2=round(255*H2/(M*N));
  94.  
  95.  
  96. figure(3)
  97. %plot(P)
  98. % odwrócona pętla zeby wyrównać pętle
  99.  
  100.  
  101. y2=0*x2;
  102.  
  103. for m=1:M
  104. for n=1:N
  105. %histogram
  106. value = x2(m,n);
  107. y2(m,n)= P2(value+1);
  108. end
  109. end
  110. figure(4)
  111. imagesc(y2)
  112. colormap(gray(256));
  113. h2=zeros(1,256);
  114.  
  115. for m=1:M
  116. for n=1:N
  117. %histogram
  118. h2(y2(m,n)+1)=h2(y2(m,n)+1)+1;
  119. end
  120. end
  121. %histogram nie jest idealnie prosty
  122. H2=cumsum(h2)
  123. figure(5)
  124. plot(H2)
  125.  
  126.  
  127. % trzeci
  128.  
  129.  
  130. [M,N]=size(x3);
  131. h3=zeros(1,256);
  132. % twprzenie histogramu
  133. for m=1:M
  134. for n=1:N
  135. %histogram
  136. h3(x3(m,n)+1)=h3(x3(m,n)+1)+1;
  137. end
  138. end
  139. %kolor czerwony
  140. plot(h3)
  141. %obrazek dla porównia
  142. figure(2)
  143.  
  144. imagesc(x3)
  145. colormap(gray(256));
  146.  
  147. % pierwszy krok algorytm wyrównywanie histogramu, robi z dysrtybuaty ta całka z tego //
  148. % Y to wszystkie piksele
  149.  
  150. H3=cumsum(h3)
  151. %dystrybuata o wartosci 256, nigdy nie maleje
  152. P3=round(255*H3/(M*N));
  153.  
  154.  
  155. figure(3)
  156. %plot(P)
  157. % odwrócona pętla zeby wyrównać pętle
  158.  
  159.  
  160. y3=0*x3;
  161.  
  162. for m=1:M
  163. for n=1:N
  164. %histogram
  165. value = x3(m,n);
  166. y3(m,n)= P3(value+1);
  167. end
  168. end
  169. figure(4)
  170. imagesc(y3)
  171. colormap(gray(256));
  172. h3=zeros(1,256);
  173.  
  174. for m=1:M
  175. for n=1:N
  176. %histogram
  177. h3(y3(m,n)+1)=h3(y3(m,n)+1)+1;
  178. end
  179. end
  180. %histogram nie jest idealnie prosty
  181. H3=cumsum(h3)
  182. figure(6)
  183. plot(H3)
  184. %po rozciagniecu rosrzeł sie najbardiej niebeiski, bo go było naj mniej
  185. y(:,:,1)=y1;
  186. y(:,:,2)=y2;
  187. y(:,:,3)=y3;
  188. figure(7)
  189. imagesc(y)
  190.  
  191. %po rozciagniecu rosrzeł sie najbardiej niebeiski, bo go było najmniej
  192. % na lumnacje i hrominacje
  193. % y, cb, br rby2cbr
  194. %nie wyrównujemy kolory
  195. % tylko luminacje
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement