Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- input = imread('bartek2.jpg');
- R = double(input(:,:,1));
- G = double(input(:,:,2));
- B = double(input(:,:,3));
- R = double(R);
- G = double(G);
- B = double(B);
- L = R + G + B;
- r = R ./ double(L);
- g = G ./ double(L);
- r = uint16(r * 255) + 1;
- g = uint16(g * 255) + 1;
- [height, width] = size(r);
- h = zeros(256, 256);
- for j=1 : height
- for i=1 : width
- wr = r(j,i);
- wg = g(j,i);
- h(wg, wr) = h(wg,wr)+1;
- end
- end
- figure();
- mesh(h);
- S = 0;
- for i = 1: 256
- for j = 1 : 256
- S = S + h(i,j);
- end
- end
- Sr = 0;
- Sg = 0;
- Srr = 0;
- for i = 1: 256
- for j = 1 : 256
- Sr = Sr + h(i,j) * i;
- Sg = Sg + h(i,j) * j;
- end
- end
- ur = (1 / S) * Sr;
- ug = (1 / S) * Sg;
- Srr = 0;
- Sgg = 0;
- Srg = 0;
- for i = 1: 256
- for j = 1 : 256
- Srr = Srr + h(i,j) * (i - ur)^2;
- Sgg = Sgg + h(i,j) * (j - ug)^2;
- Srg = Srg + h(i,j) * (i - ur)*(j - ug);
- end
- end
- urr = (1 / S) * Srr;
- ugg = (1 / S) * Sgg;
- urg = (1 / S) * Srg;
- ugr = urg;
- % czesc 2
- input2 = imread('bartek.jpg');
- R2 = double(input2(:,:,1));
- G2 = double(input2(:,:,2));
- B2 = double(input2(:,:,3));
- R2 = double(R2);
- G2 = double(G2);
- B2 = double(B2);
- L2 = R2 + G2 + B2;
- r2 = R2 ./ double(L2);
- g2 = G2 ./ double(L2);
- r2 = uint16(r2 * 255) + 1;
- g2 = uint16(g2 * 255) + 1;
- [height2, width2] = size(r2);
- h2 = zeros(height2, width2);
- U = [ur;ug];
- C = [urr,urg;urg,ugg];
- for j=1 : height2
- for i=1 : width2
- X = [double(r2(j,i));double(g2(j,i))];
- G = exp((-1/2)*(X-U)'*inv(C)*(X-U));
- h2(j,i) = G;
- end
- end
- figure();
- imshow(h2);
- [A,Y]=meshgrid(1:256,1:256);
- D=zeros(256,256);
- for j=1:256
- for i=1:256
- n=A(i,j);
- f=Y(i,j);
- H=[n;f];
- Q=exp((-1/2)*(H-U)'*inv(C)*(H-U));
- D(j,i)=Q;
- end
- end
- figure();
- mesh(D);
- % czesc 3
- figure();
- imshow(im2bw(h2));
Advertisement
Add Comment
Please, Sign In to add comment