% clear all;
% band1 = imread ( 'ori\band1.gif' );
% band2 = imread ( 'ori\band2.gif' );
% band3 = imread ( 'ori\band3.gif' );
% band4 = imread ( 'ori\band4.gif' );
%
% min1 = min(min(band1));
% min2 = min(min(band2));
% min3 = min(min(band3));
% min4 = min(min(band4));
%
% max1 = max(max(band1));
% max2 = max(max(band2));
% max3 = max(max(band3));
% max4 = max(max(band4));
%
% img1 = uint8 ( ( double(band1) - double(min1) ) * 255 / ( double(max1) - double(min1) ) );
% img2 = uint8 ( ( double(band2) - double(min2) ) * 255 / ( double(max2) - double(min2) ) );
% img3 = uint8 ( ( double(band3) - double(min3) ) * 255 / ( double(max3) - double(min3) ) );
% img4 = uint8 ( ( double(band4) - double(min4) ) * 240 / ( double(max4) - double(min4) ) );
%
% clear band1; clear band2; clear band3; clear band4;
% clear min1; clear min2; clear min3; clear min4;
% clear max1; clear max2; clear max3; clear max4;
%
%
% part1 = uint16(zeros ( 512*512, 6 ));
% part2 = uint16(zeros ( 512*512, 6 ));
% part3 = uint16(zeros ( 512*512, 6 ));
% part4 = uint16(zeros ( 512*512, 6 ));
% part5 = uint16(zeros ( 512*512, 6 ));
% part6 = uint16(zeros ( 512*512, 6 ));
% p2c = 0;
% p1c = 0;
% p3c = 0;
% p4c = 0;
% p5c = 0;
% p6c = 0;
% for x = 1 : 512
% for y = 1 : 512
% r = rand ( 1, 1 );
% if ( r < 0.16 )
% p1c = p1c + 1;
% part1( p1c, 1 ) = x;
% part1( p1c, 2 ) = y;
% part1( p1c, 3 ) = img1(x,y);
% part1( p1c, 4 ) = img2(x,y);
% part1( p1c, 5 ) = img3(x,y);
% part1( p1c, 6 ) = img4(x,y);
% else
% if ( r < 0.32 )
% p2c = p2c + 1;
% part2( p2c, 1 ) = x;
% part2( p2c, 2 ) = y;
% part2( p2c, 3 ) = img1(x,y);
% part2( p2c, 4 ) = img2(x,y);
% part2( p2c, 5 ) = img3(x,y);
% part2( p2c, 6 ) = img4(x,y);
% else
% if ( r < 0.48 )
% p3c = p3c + 1;
% part3( p3c, 1 ) = x;
% part3( p3c, 2 ) = y;
% part3( p3c, 3 ) = img1(x,y);
% part3( p3c, 4 ) = img2(x,y);
% part3( p3c, 5 ) = img3(x,y);
% part3( p3c, 6 ) = img4(x,y);
% else
% if ( r < 0.64 )
% p4c = p4c + 1;
% part4( p4c, 1 ) = x;
% part4( p4c, 2 ) = y;
% part4( p4c, 3 ) = img1(x,y);
% part4( p4c, 4 ) = img2(x,y);
% part4( p4c, 5 ) = img3(x,y);
% part4( p4c, 6 ) = img4(x,y);
% else
% if ( r < 0.80 )
% p5c = p5c + 1;
% part5( p5c, 1 ) = x;
% part5( p5c, 2 ) = y;
% part5( p5c, 3 ) = img1(x,y);
% part5( p5c, 4 ) = img2(x,y);
% part5( p5c, 5 ) = img3(x,y);
% part5( p5c, 6 ) = img4(x,y);
% else
% p6c = p6c + 1;
% part6( p6c, 1 ) = x;
% part6( p6c, 2 ) = y;
% part6( p6c, 3 ) = img1(x,y);
% part6( p6c, 4 ) = img2(x,y);
% part6( p6c, 5 ) = img3(x,y);
% part6( p6c, 6 ) = img4(x,y);
% end
% end
% end
% end
% end
% end
% end
%
% img = zeros ( 512, 512 );
% for c = 1 : p1c
% img(uint16(part1(c,1)),uint16(part1(c,2))) = 255;
% end
% for c = 1 : p2c
% img(uint16(part2(c,1)),uint16(part2(c,2))) = 200;
% end
% for c = 1 : p3c
% img(uint16(part3(c,1)),uint16(part3(c,2))) = 1;
% end
% for c = 1 : p4c
% img(uint16(part4(c,1)),uint16(part4(c,2))) = 150;
% end
% for c = 1 : p5c
% img(uint16(part5(c,1)),uint16(part5(c,2))) = 100;
% end
% for c = 1 : p6c
% img(uint16(part6(c,1)),uint16(part6(c,2))) = 50;
% end
% img = uint8 ( img );
% imshow ( img );
%
% for n = 1 : 40
% n
% if p1c == 0
% p1mean = [0, 0, 0, 0];
% else
% p1mean = mean(part1(1:p1c,3:6));
% end
% if p2c == 0
% p2mean = [0, 0, 0, 0];
% else
% p2mean = mean(part2(1:p2c,3:6));
% end
% if p3c == 0
% p3mean = [0, 0, 0, 0];
% else
% p3mean = mean(part3(1:p3c,3:6));
% end
% if p4c == 0
% p4mean = [0, 0, 0, 0];
% else
% p4mean = mean(part4(1:p4c,3:6));
% end
% if p5c == 0
% p5mean = [0, 0, 0, 0];
% else
% p5mean = mean(part5(1:p5c,3:6));
% end
% if p6c == 0
% p6mean = [0, 0, 0, 0];
% else
% p6mean = mean(part6(1:p6c,3:6));
% end
% part1n = uint16(zeros( 512*512, 6 ));
% part2n = uint16(zeros( 512*512, 6 ));
% part3n = uint16(zeros( 512*512, 6 ));
% part4n = uint16(zeros( 512*512, 6 ));
% part5n = uint16(zeros( 512*512, 6 ));
% part6n = uint16(zeros( 512*512, 6 ));
% p1cn = 0;
% p2cn = 0;
% p3cn = 0;
% p4cn = 0;
% p5cn = 0;
% p6cn = 0;
% mis = 0;
% for c = 1 : p1c
% dis(1) = sqrt ( (double(part1(c,3))-p1mean(1))^2 + (double(part1(c,4))-p1mean(2))^2 + (double(part1(c,5))-p1mean(3))^2 + (double(part1(c,6))-p1mean(4))^2 );
% dis(2) = sqrt ( (double(part1(c,3))-p2mean(1))^2 + (double(part1(c,4))-p2mean(2))^2 + (double(part1(c,5))-p2mean(3))^2 + (double(part1(c,6))-p2mean(4))^2 );
% dis(3) = sqrt ( (double(part1(c,3))-p3mean(1))^2 + (double(part1(c,4))-p3mean(2))^2 + (double(part1(c,5))-p3mean(3))^2 + (double(part1(c,6))-p3mean(4))^2 );
% dis(4) = sqrt ( (double(part1(c,3))-p4mean(1))^2 + (double(part1(c,4))-p4mean(2))^2 + (double(part1(c,5))-p4mean(3))^2 + (double(part1(c,6))-p4mean(4))^2 );
% dis(5) = sqrt ( (double(part1(c,3))-p5mean(1))^2 + (double(part1(c,4))-p5mean(2))^2 + (double(part1(c,5))-p5mean(3))^2 + (double(part1(c,6))-p5mean(4))^2 );
% dis(6) = sqrt ( (double(part1(c,3))-p6mean(1))^2 + (double(part1(c,4))-p6mean(2))^2 + (double(part1(c,5))-p6mean(3))^2 + (double(part1(c,6))-p6mean(4))^2 );
% [ temp loc ] = min(dis);
% switch loc
% case 1
% p1cn = p1cn + 1;
% part1n(p1cn,:) = part1(c,:);
% case 2
% p2cn = p2cn + 1;
% part2n(p2cn,:) = part1(c,:);
% mis = mis + 1;
% case 3
% p3cn = p3cn + 1;
% part3n(p3cn,:) = part1(c,:);
% mis = mis + 1;
% case 4
% p4cn = p4cn + 1;
% part4n(p4cn,:) = part1(c,:);
% mis = mis + 1;
% case 5
% p5cn = p5cn + 1;
% part5n(p5cn,:) = part1(c,:);
% mis = mis + 1;
% case 6
% p6cn = p6cn + 1;
% part6n(p6cn,:) = part1(c,:);
% mis = mis + 1;
% end
% end
%
% for c = 1 : p2c
% dis(1) = sqrt ( (double(part2(c,3))-p1mean(1))^2 + (double(part2(c,4))-p1mean(2))^2 + (double(part2(c,5))-p1mean(3))^2 + (double(part2(c,6))-p1mean(4))^2 );
% dis(2) = sqrt ( (double(part2(c,3))-p2mean(1))^2 + (double(part2(c,4))-p2mean(2))^2 + (double(part2(c,5))-p2mean(3))^2 + (double(part2(c,6))-p2mean(4))^2 );
% dis(3) = sqrt ( (double(part2(c,3))-p3mean(1))^2 + (double(part2(c,4))-p3mean(2))^2 + (double(part2(c,5))-p3mean(3))^2 + (double(part2(c,6))-p3mean(4))^2 );
% dis(4) = sqrt ( (double(part2(c,3))-p4mean(1))^2 + (double(part2(c,4))-p4mean(2))^2 + (double(part2(c,5))-p4mean(3))^2 + (double(part2(c,6))-p4mean(4))^2 );
% dis(5) = sqrt ( (double(part2(c,3))-p5mean(1))^2 + (double(part2(c,4))-p5mean(2))^2 + (double(part2(c,5))-p5mean(3))^2 + (double(part2(c,6))-p5mean(4))^2 );
% dis(6) = sqrt ( (double(part2(c,3))-p6mean(1))^2 + (double(part2(c,4))-p6mean(2))^2 + (double(part2(c,5))-p6mean(3))^2 + (double(part2(c,6))-p6mean(4))^2 );
% [ temp loc ] = min(dis);
% switch loc
% case 1
% p1cn = p1cn + 1;
% part1n(p1cn,:) = part2(c,:);
% mis = mis + 1;
% case 2
% p2cn = p2cn + 1;
% part2n(p2cn,:) = part2(c,:);
% case 3
% p3cn = p3cn + 1;
% part3n(p3cn,:) = part2(c,:);
% mis = mis + 1;
% case 4
% p4cn = p4cn + 1;
% part4n(p4cn,:) = part2(c,:);
% mis = mis + 1;
% case 5
% p5cn = p5cn + 1;
% part5n(p5cn,:) = part2(c,:);
% mis = mis + 1;
% case 6
% p6cn = p6cn + 1;
% part6n(p6cn,:) = part2(c,:);
% mis = mis + 1;
% end
% end
%
% for c = 1 : p3c
% dis(1) = sqrt ( (double(part3(c,3))-p1mean(1))^2 + (double(part3(c,4))-p1mean(2))^2 + (double(part3(c,5))-p1mean(3))^2 + (double(part3(c,6))-p1mean(4))^2 );
% dis(2) = sqrt ( (double(part3(c,3))-p2mean(1))^2 + (double(part3(c,4))-p2mean(2))^2 + (double(part3(c,5))-p2mean(3))^2 + (double(part3(c,6))-p2mean(4))^2 );
% dis(3) = sqrt ( (double(part3(c,3))-p3mean(1))^2 + (double(part3(c,4))-p3mean(2))^2 + (double(part3(c,5))-p3mean(3))^2 + (double(part3(c,6))-p3mean(4))^2 );
% dis(4) = sqrt ( (double(part3(c,3))-p4mean(1))^2 + (double(part3(c,4))-p4mean(2))^2 + (double(part3(c,5))-p4mean(3))^2 + (double(part3(c,6))-p4mean(4))^2 );
% dis(5) = sqrt ( (double(part3(c,3))-p5mean(1))^2 + (double(part3(c,4))-p5mean(2))^2 + (double(part3(c,5))-p5mean(3))^2 + (double(part3(c,6))-p5mean(4))^2 );
% dis(6) = sqrt ( (double(part3(c,3))-p6mean(1))^2 + (double(part3(c,4))-p6mean(2))^2 + (double(part3(c,5))-p6mean(3))^2 + (double(part3(c,6))-p6mean(4))^2 );
% [ temp loc ] = min(dis);
% switch loc
% case 1
% p1cn = p1cn + 1;
% part1n(p1cn,:) = part3(c,:);
% mis = mis + 1;
% case 2
% p2cn = p2cn + 1;
% part2n(p2cn,:) = part3(c,:);
% mis = mis + 1;
% case 3
% p3cn = p3cn + 1;
% part3n(p3cn,:) = part3(c,:);
% case 4
% p4cn = p4cn + 1;
% part4n(p4cn,:) = part3(c,:);
% mis = mis + 1;
% case 5
% p5cn = p5cn + 1;
% part5n(p5cn,:) = part3(c,:);
% mis = mis + 1;
% case 6
% p6cn = p6cn + 1;
% part6n(p6cn,:) = part3(c,:);
% mis = mis + 1;
% end
% end
%
% for c = 1 : p4c
% dis(1) = sqrt ( (double(part4(c,3))-p1mean(1))^2 + (double(part4(c,4))-p1mean(2))^2 + (double(part4(c,5))-p1mean(3))^2 + (double(part4(c,6))-p1mean(4))^2 );
% dis(2) = sqrt ( (double(part4(c,3))-p2mean(1))^2 + (double(part4(c,4))-p2mean(2))^2 + (double(part4(c,5))-p2mean(3))^2 + (double(part4(c,6))-p2mean(4))^2 );
% dis(3) = sqrt ( (double(part4(c,3))-p3mean(1))^2 + (double(part4(c,4))-p3mean(2))^2 + (double(part4(c,5))-p3mean(3))^2 + (double(part4(c,6))-p3mean(4))^2 );
% dis(4) = sqrt ( (double(part4(c,3))-p4mean(1))^2 + (double(part4(c,4))-p4mean(2))^2 + (double(part4(c,5))-p4mean(3))^2 + (double(part4(c,6))-p4mean(4))^2 );
% dis(5) = sqrt ( (double(part4(c,3))-p5mean(1))^2 + (double(part4(c,4))-p5mean(2))^2 + (double(part4(c,5))-p5mean(3))^2 + (double(part4(c,6))-p5mean(4))^2 );
% dis(6) = sqrt ( (double(part4(c,3))-p6mean(1))^2 + (double(part4(c,4))-p6mean(2))^2 + (double(part4(c,5))-p6mean(3))^2 + (double(part4(c,6))-p6mean(4))^2 );
% [ temp loc ] = min(dis);
% switch loc
% case 1
% p1cn = p1cn + 1;
% part1n(p1cn,:) = part4(c,:);
% mis = mis + 1;
% case 2
% p2cn = p2cn + 1;
% part2n(p2cn,:) = part4(c,:);
% mis = mis + 1;
% case 3
% p3cn = p3cn + 1;
% part3n(p3cn,:) = part4(c,:);
% mis = mis + 1;
% case 4
% p4cn = p4cn + 1;
% part4n(p4cn,:) = part4(c,:);
% case 5
% p5cn = p5cn + 1;
% part5n(p5cn,:) = part4(c,:);
% mis = mis + 1;
% case 6
% p6cn = p6cn + 1;
% part6n(p6cn,:) = part4(c,:);
% mis = mis + 1;
% end
% end
%
% for c = 1 : p5c
% dis(1) = sqrt ( (double(part5(c,3))-p1mean(1))^2 + (double(part5(c,4))-p1mean(2))^2 + (double(part5(c,5))-p1mean(3))^2 + (double(part5(c,6))-p1mean(4))^2 );
% dis(2) = sqrt ( (double(part5(c,3))-p2mean(1))^2 + (double(part5(c,4))-p2mean(2))^2 + (double(part5(c,5))-p2mean(3))^2 + (double(part5(c,6))-p2mean(4))^2 );
% dis(3) = sqrt ( (double(part5(c,3))-p3mean(1))^2 + (double(part5(c,4))-p3mean(2))^2 + (double(part5(c,5))-p3mean(3))^2 + (double(part5(c,6))-p3mean(4))^2 );
% dis(4) = sqrt ( (double(part5(c,3))-p4mean(1))^2 + (double(part5(c,4))-p4mean(2))^2 + (double(part5(c,5))-p4mean(3))^2 + (double(part5(c,6))-p4mean(4))^2 );
% dis(5) = sqrt ( (double(part5(c,3))-p5mean(1))^2 + (double(part5(c,4))-p5mean(2))^2 + (double(part5(c,5))-p5mean(3))^2 + (double(part5(c,6))-p5mean(4))^2 );
% dis(6) = sqrt ( (double(part5(c,3))-p6mean(1))^2 + (double(part5(c,4))-p6mean(2))^2 + (double(part5(c,5))-p6mean(3))^2 + (double(part5(c,6))-p6mean(4))^2 );
% [ temp loc ] = min(dis);
% switch loc
% case 1
% p1cn = p1cn + 1;
% part1n(p1cn,:) = part5(c,:);
% mis = mis + 1;
% case 2
% p2cn = p2cn + 1;
% part2n(p2cn,:) = part5(c,:);
% mis = mis + 1;
% case 3
% p3cn = p3cn + 1;
% part3n(p3cn,:) = part5(c,:);
% mis = mis + 1;
% case 4
% p4cn = p4cn + 1;
% part4n(p4cn,:) = part5(c,:);
% mis = mis + 1;
% case 5
% p5cn = p5cn + 1;
% part5n(p5cn,:) = part5(c,:);
% case 6
% p6cn = p6cn + 1;
% part6n(p6cn,:) = part5(c,:);
% mis = mis + 1;
% end
% end
%
% for c = 1 : p6c
% dis(1) = sqrt ( (double(part6(c,3))-p1mean(1))^2 + (double(part6(c,4))-p1mean(2))^2 + (double(part6(c,5))-p1mean(3))^2 + (double(part6(c,6))-p1mean(4))^2 );
% dis(2) = sqrt ( (double(part6(c,3))-p2mean(1))^2 + (double(part6(c,4))-p2mean(2))^2 + (double(part6(c,5))-p2mean(3))^2 + (double(part6(c,6))-p2mean(4))^2 );
% dis(3) = sqrt ( (double(part6(c,3))-p3mean(1))^2 + (double(part6(c,4))-p3mean(2))^2 + (double(part6(c,5))-p3mean(3))^2 + (double(part6(c,6))-p3mean(4))^2 );
% dis(4) = sqrt ( (double(part6(c,3))-p4mean(1))^2 + (double(part6(c,4))-p4mean(2))^2 + (double(part6(c,5))-p4mean(3))^2 + (double(part6(c,6))-p4mean(4))^2 );
% dis(5) = sqrt ( (double(part6(c,3))-p5mean(1))^2 + (double(part6(c,4))-p5mean(2))^2 + (double(part6(c,5))-p5mean(3))^2 + (double(part6(c,6))-p5mean(4))^2 );
% dis(6) = sqrt ( (double(part6(c,3))-p6mean(1))^2 + (double(part6(c,4))-p6mean(2))^2 + (double(part6(c,5))-p6mean(3))^2 + (double(part6(c,6))-p6mean(4))^2 );
% [ temp loc ] = min(dis);
% switch loc
% case 1
% p1cn = p1cn + 1;
% part1n(p1cn,:) = part6(c,:);
% mis = mis + 1;
% case 2
% p2cn = p2cn + 1;
% part2n(p2cn,:) = part6(c,:);
% mis = mis + 1;
% case 3
% p3cn = p3cn + 1;
% part3n(p3cn,:) = part6(c,:);
% mis = mis + 1;
% case 4
% p4cn = p4cn + 1;
% part4n(p4cn,:) = part6(c,:);
% mis = mis + 1;
% case 5
% p5cn = p5cn + 1;
% part5n(p5cn,:) = part6(c,:);
% case 6
% p6cn = p6cn + 1;
% part6n(p6cn,:) = part6(c,:);
% mis = mis + 1;
% end
% end
%
% if mis == 0
% disp 'mis-classification is zero ... !!!';
% break;
% else
% part1 = part1n;
% part2 = part2n;
% part3 = part3n;
% part4 = part4n;
% part5 = part5n;
% part6 = part6n;
% p1c = p1cn;
% p2c = p2cn;
% p3c = p3cn;
% p4c = p4cn;
% p5c = p5cn;
% p6c = p6cn;
% end
% end
img = zeros ( 512, 512, 3 );
for c = 1 : p1c
% img(uint16(part1(c,1)),uint16(part1(c,2)),1) = 255;
img(uint16(part1(c,1)),uint16(part1(c,2)),1) = 0;
img(uint16(part1(c,1)),uint16(part1(c,2)),2) = 78;
img(uint16(part1(c,1)),uint16(part1(c,2)),3) = 152;
end
for c = 1 : p2c
% img(uint16(part2(c,1)),uint16(part2(c,2)),1) = 200;
img(uint16(part2(c,1)),uint16(part2(c,2)),1) = 0;
img(uint16(part2(c,1)),uint16(part2(c,2)),2) = 255;
img(uint16(part2(c,1)),uint16(part2(c,2)),3) = 128;
end
for c = 1 : p3c
% img(uint16(part3(c,1)),uint16(part3(c,2)),1) = 1;
img(uint16(part3(c,1)),uint16(part3(c,2)),1) = 128;
img(uint16(part3(c,1)),uint16(part3(c,2)),2) = 128;
img(uint16(part3(c,1)),uint16(part3(c,2)),3) = 255;
end
for c = 1 : p4c
% img(uint16(part4(c,1)),uint16(part4(c,2)),1) = 150;
img(uint16(part4(c,1)),uint16(part4(c,2)),1) = 255;
img(uint16(part4(c,1)),uint16(part4(c,2)),2) = 128;
img(uint16(part4(c,1)),uint16(part4(c,2)),3) = 64;
end
for c = 1 : p5c
% img(uint16(part5(c,1)),uint16(part5(c,2)),1) = 100;
img(uint16(part5(c,1)),uint16(part5(c,2)),1) = 192;
img(uint16(part5(c,1)),uint16(part5(c,2)),2) = 192;
img(uint16(part5(c,1)),uint16(part5(c,2)),3) = 192;
end
for c = 1 : p6c
% img(uint16(part6(c,1)),uint16(part6(c,2)),1) = 50;
img(uint16(part6(c,1)),uint16(part6(c,2)),1) = 128;
img(uint16(part6(c,1)),uint16(part6(c,2)),2) = 64;
img(uint16(part6(c,1)),uint16(part6(c,2)),3) = 0;
end
img = uint8 ( img );
imshow ( img );
imwrite ( img, 'http://www.geocities.com/saket_soni1980/assign/mts3/prip/kmeanout/p6r.bmp', 'bmp' );