Advertisement
Rementai

LAB02

Oct 12th, 2022
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.10 KB | None | 0 0
  1. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2. LUT
  3. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  4. clc
  5. clear all
  6. close all
  7.  
  8. load funkcjeLUT
  9.  
  10. % figure(1);
  11. % plot(kwadratowa);
  12. %
  13. % x = imread("lena.bmp");
  14. %
  15. % figure(2)
  16. % imshow(x);
  17. %
  18. % y = intlut(x,kwadratowa);
  19. %
  20. % figure(3)
  21. % imshow(y);
  22.  
  23. x = imread("lena.bmp");
  24.  
  25. figure('Name','logarytmiczna');
  26. LUT2(x,log);
  27.  
  28. figure('Name','odw logarytmiczna');
  29. LUT2(x,odwlog);
  30.  
  31. figure('Name','wykladnicza');
  32. LUT2(x,wykladnicza);
  33.  
  34. figure('Name','kwadratowa');
  35. LUT2(x,kwadratowa);
  36.  
  37. figure('Name','pierwiastkowa');
  38. LUT2(x,pierwiastkowa);
  39.  
  40. figure('Name','odwrotna');
  41. LUT2(x,odwrotna);
  42.  
  43. figure('Name','pila');
  44. LUT2(x,pila);
  45.  
  46.  
  47.  
  48.  
  49. function LUT(obraz,przekodowanie)
  50.  
  51. y = intlut(obraz,przekodowanie);
  52. subplot(3,1,1)
  53. plot(przekodowanie);
  54. title("WYKRES")
  55.  
  56. subplot(3,1,2)
  57. imshow(obraz)
  58. title("Oryginal")
  59.  
  60. subplot(3,1,3)
  61. imshow(y)
  62. title("Przekodowany")
  63.  
  64. end
  65.  
  66. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  67. Operacje arytmetyczne
  68. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  69.  
  70. clc
  71. clear all
  72. close all
  73.  
  74. x = imread("lena.bmp");
  75. y = imread("jet.bmp");
  76.  
  77. % figure('Name','Lena');
  78. % imshow(x);
  79. %
  80. % figure('Name','Jet');
  81. % imshow(y);
  82.  
  83. figure('Name','Dodawanie');
  84. % add = imadd(x,y);
  85. add = imadd(x,y,'uint16');
  86. imshow(add,[]);
  87.  
  88. % Wynik sumowania nie jest satysfakcjonujący. Jest rozjaśniony. Dzieje się
  89. % tak, ponieważ liczby dodane z macierzy obrazu sprawiają, że poszczególne
  90. % pixele się rozjaśniają. Po dodaniu uint16 wynik jest dobry.
  91.  
  92. figure('Name','Kombinacja liniowa');
  93. comb = imlincomb(1,x,1,y,'uint16');
  94. imshow(comb,[]);
  95.  
  96. figure('Name','Odejmowanie');
  97. % sub = imsubtract(x,y);
  98. % imshow(sub);
  99.  
  100. x16=int16(x);
  101. y16=int16(y);
  102. sub2 = imsubtract(x16,y16);
  103. imshow(sub2,[]);
  104.  
  105. % Podobnie jak przy dodawaniu, tylko teraz zamiast dodawać liczby z macierzy
  106. % odejmujemy je, przez co obraz staje się coraz ciemniejszy. Po zmianie
  107. % typu danych wynik jest już dobry, obraz staje się czytelny.
  108.  
  109. figure('Name','Mnozenie');
  110. mul = immultiply(x,y);
  111. imshow(mul);
  112.  
  113. % Taki efekt powoduje, ze obraz jest cały biały. Dzieje sie tak ponieważ pixele
  114. % po wymnozeniu wychodzą poza skale - 255 to biel.
  115.  
  116. figure('Name','Mnozenie-stala');
  117. mulcons = immultiply(x, 2);
  118. imshow(mulcons);
  119.  
  120. % Obraz tak jak się można było spodziewać - rozjaśnił się ponieważ przemnożyliśmy przez 2
  121.  
  122. figure('Name','Mnozenie-maska');
  123. kolo = imread("kolo.bmp");
  124. mask = boolean(kolo);
  125. mulmask = immultiply(x,mask);
  126. imshow(mulmask);
  127.  
  128. figure('Name','Negatyw');
  129. neg = imcomplement(x);
  130. imshow(neg);
  131.  
  132.  
  133. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  134. Operacje logiczne
  135. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  136.  
  137. clear all;
  138. close all;
  139. clc
  140.  
  141. kolo=imread('kolo.bmp');
  142. kwadrat=imread('kwadrat.bmp');
  143.  
  144. kolo=boolean(kolo);
  145. kwadrat=boolean(kwadrat);
  146.  
  147. figure('Name','Kolo');
  148. imshow(kolo);
  149.  
  150. figure('Name','Kwadrat');
  151. imshow(kwadrat);
  152.  
  153. figure('Name','Not Kolo');
  154. imshow(~kolo);
  155.  
  156. figure('Name','Not Kwadrat');
  157. imshow(~kwadrat);
  158.  
  159. figure('Name','AND')
  160. imshow(kolo & kwadrat);
  161.  
  162. figure('Name','OR');
  163. imshow(kolo | kwadrat);
  164.  
  165. figure('Name','XOR');
  166. x = xor(kolo,kwadrat);
  167. imshow(x);
  168.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement