Facebook
From enchante, 7 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 171
  1. 1. zadatak - Napraviti funkciju komponenta koja treba da crvenu, zelenu, plavu i filtriranu sliku spremi u jedan folder
  2.  
  3. function [boja] = komponenta(slika, RGB) %% naziv mora biti kao komponenta
  4. boja = slika;
  5. vel_u_pikselima = size(slika);
  6. sirina = vel_u_pikselima(1);
  7. visina = vel_u_pikselima(2);
  8.  
  9. if RGB == 'R'
  10.     for i = 1:1:sirina
  11.         for j = 1:1:visina
  12.             boja(i,j,2) = 0;
  13.             boja(i,j,3) = 0;
  14.         end
  15.     end
  16. end
  17.  
  18. if RGB == 'G'
  19.     for i = 1:1:sirina
  20.         for j = 1:1:visina
  21.             boja(i,j,1) = 0;
  22.             boja(i,j,3) = 0;
  23.         end
  24.     end
  25. end
  26.  
  27. if RGB == 'B'
  28.     for i = 1:1:sirina
  29.         for j = 1:1:visina
  30.             boja(i,j,1) = 0;
  31.             boja(i,j,2) = 0;
  32.         end
  33.     end
  34. end
  35.  
  36. % zatim pravimo drugu .m skriptu u kojoj primjenjujemo filter
  37.  
  38. % Čitanje slike
  39. slika = imread('macka.jpg');
  40.  
  41. % Izdvajanje RGB komponenti
  42. crvena = komponenta(slika, 'R');
  43. zelena = komponenta(slika, 'G');
  44. plava = komponenta(slika, 'B');
  45.  
  46. % Definisanje filtera
  47. h = [1 0 -1; 2 0 -2; 1 0 -1];
  48.  
  49. % Primjena filtera na cijelu crvenu komponentu slike
  50. filtriranaCrvena = imfilter(crvena, h);
  51.  
  52. % Prikaz slika
  53. figure(1);
  54. imshow(crvena);
  55. title('Crvena komponenta');
  56.  
  57. figure(2);
  58. imshow(zelena);
  59. title('Zelena komponenta');
  60.  
  61. figure(3);
  62. imshow(plava);
  63. title('Plava komponenta');
  64.  
  65. figure(4);
  66. imshow(filtriranaCrvena);
  67. title('Filtrirana crvena komponenta');
  68.  
  69. % Čuvanje slika
  70. imwrite(crvena, 'MojaCrvena.jpg');
  71. imwrite(zelena, 'MojaZelena.jpg'); % naziv proizvoljno
  72. imwrite(plava, 'MojaPlava.jpg');
  73. imwrite(filtriranaCrvena, 'MojaFiltriranaCrvena.jpg');
  74.  
  75. 2. zadatak - ucitati sliku i na njoj primijeniti filtere motion,sobel,unsharp,disk,log
  76.  
  77. % Učitavanje originalne slike
  78. originalna_slika = imread('macka.jpg');
  79.  
  80. % Filtriranje slika s različitim filterima
  81. sobel_slika = imfilter(originalna_slika, fspecial('sobel'));
  82. motion_slika = imfilter(originalna_slika, fspecial('motion', 15, 45));
  83. log_slika = imfilter(originalna_slika, fspecial('log', 5, 0.5));
  84. disk_slika = imfilter(originalna_slika, fspecial('disk', 5));
  85. unsharp_slika = imfilter(originalna_slika, fspecial('unsharp'));
  86.  
  87. % Prikaz originalne slike i filtriranih slika
  88. figure;
  89.  
  90. subplot(2, 3, 1);
  91. imshow(originalna_slika);
  92. title('Originalna slika');
  93.  
  94. subplot(2, 3, 2);
  95. imshow(sobel_slika);
  96. title('Sobel filter');
  97.  
  98. subplot(2, 3, 3);
  99. imshow(motion_slika);
  100. title('Motion filter');
  101.  
  102. subplot(2, 3, 4);
  103. imshow(log_slika);
  104. title('Log filter');
  105.  
  106. subplot(2, 3, 5);
  107. imshow(disk_slika);
  108. title('Disk filter');
  109.  
  110. subplot(2, 3, 6);
  111. imshow(unsharp_slika);
  112. title('Unsharp filter');
  113.  
  114. % iz knjige isti zadatak
  115. s=imread('buket.jpg');
  116. I=im2double(s);
  117. subplot(3,2,1),imshow(I), title('Original');
  118.  
  119. H=fspecial('motion',30,60);
  120. Motion=imfilter(I,H,'replicate');
  121. subplot(3,2,2),imshow(Motion),title('Motion');
  122.  
  123.  
  124. H=fspecial('sobel');
  125. Sobel=imfilter(I,H,'replicate');
  126. subplot(3,2,3),imshow(Sobel),title('Sobel');
  127.  
  128. H=fspecial('log',[30,100],0.2);
  129. Log=imfilter(I,H,'replicate');
  130. subplot(3,2,4),imshow(Log),title('Log');
  131.  
  132. H=fspecial('disk',20);
  133. Disk=imfilter(I,H,'replicate');
  134. subplot(3,2,5),imshow(Disk),title('Disk');
  135.  
  136. H=fspecial('unsharp');
  137. Unsharp=imfilter(I,H,'replicate');
  138. subplot(3,2,6),imshow(Unsharp),title('Unsharp');
  139.  
  140. 3. zadatak - ucitati sliku i u zasebnim folderima spremiti njenu original i crvenu verziju, original i zelenu, original i plavu
  141.  
  142. function [boja] = komponenta(slika, RGB) %% naziv mora biti kao komponenta
  143. boja = slika;
  144. vel_u_pikselima = size(slika);
  145. sirina = vel_u_pikselima(1);
  146. visina = vel_u_pikselima(2);
  147.  
  148. if RGB == 'R'
  149.     for i = 1:1:sirina
  150.         for j = 1:1:visina
  151.             boja(i,j,2) = 0;
  152.             boja(i,j,3) = 0;
  153.         end
  154.     end
  155. end
  156.  
  157. if RGB == 'G'
  158.     for i = 1:1:sirina
  159.         for j = 1:1:visina
  160.             boja(i,j,1) = 0;
  161.             boja(i,j,3) = 0;
  162.         end
  163.     end
  164. end
  165.  
  166. if RGB == 'B'
  167.     for i = 1:1:sirina
  168.         for j = 1:1:visina
  169.             boja(i,j,1) = 0;
  170.             boja(i,j,2) = 0;
  171.         end
  172.     end
  173. end
  174.  
  175. clc
  176. close all
  177. clear all
  178.  
  179. slika = imread('krava.jpg');
  180.  
  181. % predstavimo sve RGB komponente zasebno
  182.  
  183. crvena = komponenta(slika,'R');
  184. zelena = komponenta(slika,'G');
  185. plava = komponenta(slika,'B');
  186.  
  187. % prikazujemo sve slike
  188. figure(1);
  189. imshow(crvena);
  190. title('Crvena komponenta');
  191.  
  192. figure(2);
  193. imshow(zelena);
  194. title('Zelena komponenta');
  195.  
  196. figure(3);
  197. imshow(plava);
  198. title('Plava komponenta');
  199.  
  200.  
  201. % spremamo ih u foldere
  202.  
  203. mkdir('Original_i_Crvena');
  204. mkdir('Original_i_Zelena');
  205. mkdir('Original_i_Plava');
  206.  
  207. imwrite(slika, 'Original_i_Crvena/original.jpg');
  208. imwrite(crvena, 'Original_i_Crvena/crvena.jpg');
  209.  
  210. imwrite(slika, 'Original_i_Zelena/original.jpg');
  211. imwrite(zelena, 'Original_i_Zelena/zelena.jpg');
  212.  
  213. imwrite(slika, 'Original_i_Plava/original.jpg');
  214. imwrite(plava, 'Original_i_Plava/plava.jpg');
  215.