Advertisement
Hubert_M

Untitled

Jun 22nd, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.25 KB | None | 0 0
  1. % sum of all values in normalized color space matrix
  2. S = sum(h(:));
  3. mi_r = 0;
  4. mi_g = 0;
  5. si_rr = 0.0;
  6. si_gg = 0.0;
  7.  
  8. for i = 1:256
  9. for j = 1:256
  10. mi_r = mi_r + h(i,j) * i;
  11. mi_g = mi_g + h(i,j) * j;
  12. end
  13. end
  14. mi_r = mi_r / S;
  15. mi_g = mi_g / S;
  16. % requires higher precision for si calculations
  17. rd = double(r);
  18. gd = double(g);
  19. for i = 1:256
  20. for j = 1:256
  21. si_rr = si_rr + h(i,j)*(rd(i,j) - mi_r).^2;
  22. si_gg = si_gg + h(i,j)*(rd(i,j) - mi_g).^2;
  23. end
  24. end
  25. si_gr = 0;
  26. si_rg = 0;
  27. for i = 1:256
  28. for j = 1:256
  29. si_gr = si_gr + h(i,j)*(rd(i,j) - mi_r)*(gd(i,j) - mi_g);
  30. end
  31. end
  32. si_rg = si_gr/S;
  33. si_gr = si_rg;
  34. si = [ rd; gd];
  35. mi = [ mi_r; mi_g];
  36. C = [ si_rr, si_rg; si_gr, si_gg];
  37. G = zeros(256, 256);
  38. for i = 1:256
  39. for j = 1:256
  40. G(i,j) = calculateGauss(rd(i,j), gd(i,j), mi, C);
  41. end
  42. end
  43. drugie = double(imread('reka.jpg'));
  44. R2 = double(drugie(:,:,1));
  45. G2 = double(drugie(:,:,2));
  46. B2 = double(drugie(:,:,3));
  47. L2 = R2 + G2 + B2;
  48. R2 = double(drugie(:,:,1))./double(L2);
  49. G2 = double(drugie(:,:,2))./double(L2);
  50. r2 = uint16(R2 * 255) + 1;
  51. g2 = uint16(G2 * 255) + 1;
  52. [H2, W2] = size(r2);
  53. h2 = zeros(H2, W2);
  54.  
  55.  
  56. for i=1:H2
  57. for j=1:W2
  58. G2 = calculateGauss(double(r2(i,j)), double(g2(i,j)), mi, C);
  59. h2(i,j) = G2;
  60. end
  61. end
  62. figure();
  63. imshow(h2inv);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement