1.m
· 14 KiB · Mathematica
Исходник
clear; clc;
% Load image (Type : UINT8)
gambar1 = imread('Banana/1.jpg');
gambar2 = imread('Banana/2.jpg');
gambar3 = imread('Banana/3.jpg');
gambar4 = imread('Banana/4.jpg');
gambar5 = imread('Banana/5.jpg');
gambar6 = imread('Banana/6.jpg');
gambar7 = imread('Banana/7.jpg');
gambar8 = imread('Banana/8.jpg');
gambar9 = imread('Banana/9.jpg');
gambar10 = imread('Banana/10.jpg');
gambar11 = imread('Kiwi/1.jpg');
gambar12 = imread('Kiwi/2.jpg');
gambar13 = imread('Kiwi/3.jpg');
gambar14 = imread('Kiwi/4.jpg');
gambar15 = imread('Kiwi/5.jpg');
gambar16 = imread('Kiwi/6.jpg');
gambar17 = imread('Kiwi/7.jpg');
gambar18 = imread('Kiwi/8.jpg');
gambar19 = imread('Kiwi/9.jpg');
gambar20 = imread('Kiwi/10.jpg');
gambar21 = imread('Orange/1.jpg');
gambar22 = imread('Orange/2.jpg');
gambar23 = imread('Orange/3.jpg');
gambar24 = imread('Orange/4.jpg');
gambar25 = imread('Orange/5.jpg');
gambar26 = imread('Orange/6.jpg');
gambar27 = imread('Orange/7.jpg');
gambar28 = imread('Orange/8.jpg');
gambar29 = imread('Orange/9.jpg');
gambar30 = imread('Orange/10.jpg');
% Konversi UINT8 menjadi double agar dapat di operasikan komputasinya
gambar1 = double(gambar1);
gambar2 = double(gambar2);
gambar3 = double(gambar3);
gambar4 = double(gambar4);
gambar5 = double(gambar5);
gambar6 = double(gambar6);
gambar7 = double(gambar7);
gambar8 = double(gambar8);
gambar9 = double(gambar9);
gambar10 = double(gambar10);
gambar11 = double(gambar11);
gambar12 = double(gambar12);
gambar13 = double(gambar13);
gambar14 = double(gambar14);
gambar15 = double(gambar15);
gambar16 = double(gambar16);
gambar17 = double(gambar17);
gambar18 = double(gambar18);
gambar19 = double(gambar19);
gambar20 = double(gambar20);
gambar21 = double(gambar21);
gambar22 = double(gambar22);
gambar23 = double(gambar23);
gambar24 = double(gambar24);
gambar25 = double(gambar25);
gambar26 = double(gambar26);
gambar27 = double(gambar27);
gambar28 = double(gambar28);
gambar29 = double(gambar29);
gambar30 = double(gambar30);
% 1,2,3 itu layer, RGB itu warnanya
gambar1R = gambar1(:,:,1); % layer 1
gambar1G = gambar1(:,:,2); % layer 2
gambar1B = gambar1(:,:,3); % layer 3
gambar2R = gambar2(:,:,1);
gambar2G = gambar2(:,:,2);
gambar2B = gambar2(:,:,3);
gambar3R = gambar3(:,:,1);
gambar3G = gambar3(:,:,2);
gambar3B = gambar3(:,:,3);
gambar4R = gambar4(:,:,1);
gambar4G = gambar4(:,:,2);
gambar4B = gambar4(:,:,3);
gambar5R = gambar5(:,:,1);
gambar5G = gambar5(:,:,2);
gambar5B = gambar5(:,:,3);
gambar6R = gambar6(:,:,1);
gambar6G = gambar6(:,:,2);
gambar6B = gambar6(:,:,3);
gambar7R = gambar7(:,:,1);
gambar7G = gambar7(:,:,2);
gambar7B = gambar7(:,:,3);
gambar8R = gambar8(:,:,1);
gambar8G = gambar8(:,:,2);
gambar8B = gambar8(:,:,3);
gambar9R = gambar9(:,:,1);
gambar9G = gambar9(:,:,2);
gambar9B = gambar9(:,:,3);
gambar10R = gambar10(:,:,1);
gambar10G = gambar10(:,:,2);
gambar10B = gambar10(:,:,3);
gambar11R = gambar11(:,:,1);
gambar11G = gambar11(:,:,2);
gambar11B = gambar11(:,:,3);
gambar12R = gambar12(:,:,1);
gambar12G = gambar12(:,:,2);
gambar12B = gambar12(:,:,3);
gambar13R = gambar13(:,:,1);
gambar13G = gambar13(:,:,2);
gambar13B = gambar13(:,:,3);
gambar14R = gambar14(:,:,1);
gambar14G = gambar14(:,:,2);
gambar14B = gambar14(:,:,3);
gambar15R = gambar15(:,:,1);
gambar15G = gambar15(:,:,2);
gambar15B = gambar15(:,:,3);
gambar16R = gambar16(:,:,1);
gambar16G = gambar16(:,:,2);
gambar16B = gambar16(:,:,3);
gambar17R = gambar17(:,:,1);
gambar17G = gambar17(:,:,2);
gambar17B = gambar17(:,:,3);
gambar18R = gambar18(:,:,1);
gambar18G = gambar18(:,:,2);
gambar18B = gambar18(:,:,3);
gambar19R = gambar19(:,:,1);
gambar19G = gambar19(:,:,2);
gambar19B = gambar19(:,:,3);
gambar20R = gambar20(:,:,1);
gambar20G = gambar20(:,:,2);
gambar20B = gambar20(:,:,3);
gambar21R = gambar21(:,:,1);
gambar21G = gambar21(:,:,2);
gambar21B = gambar21(:,:,3);
gambar22R = gambar22(:,:,1);
gambar22G = gambar22(:,:,2);
gambar22B = gambar22(:,:,3);
gambar23R = gambar23(:,:,1);
gambar23G = gambar23(:,:,2);
gambar23B = gambar23(:,:,3);
gambar24R = gambar24(:,:,1);
gambar24G = gambar24(:,:,2);
gambar24B = gambar24(:,:,3);
gambar25R = gambar25(:,:,1);
gambar25G = gambar25(:,:,2);
gambar25B = gambar25(:,:,3);
gambar26R = gambar26(:,:,1);
gambar26G = gambar26(:,:,2);
gambar26B = gambar26(:,:,3);
gambar27R = gambar27(:,:,1);
gambar27G = gambar27(:,:,2);
gambar27B = gambar27(:,:,3);
gambar28R = gambar28(:,:,1);
gambar28G = gambar28(:,:,2);
gambar28B = gambar28(:,:,3);
gambar29R = gambar29(:,:,1);
gambar29G = gambar29(:,:,2);
gambar29B = gambar29(:,:,3);
gambar30R = gambar30(:,:,1);
gambar30G = gambar30(:,:,2);
gambar30B = gambar30(:,:,3);
[n,p] = size(gambar1R);
k = 1;
for i=1:n
for j=1:p
vgambar1R(k,1) = gambar1R(i,j);
vgambar1G(k,1) = gambar1G(i,j);
vgambar1B(k,1) = gambar1B(i,j);
mat_gambar1 = [vgambar1R, vgambar1G, vgambar1B];
vgambar2R(k,1) = gambar2R(i,j);
vgambar2G(k,1) = gambar2G(i,j);
vgambar2B(k,1) = gambar2B(i,j);
mat_gambar2 = [vgambar2R, vgambar2G, vgambar2B];
vgambar3R(k,1) = gambar3R(i,j);
vgambar3G(k,1) = gambar3G(i,j);
vgambar3B(k,1) = gambar3B(i,j);
mat_gambar3 = [vgambar3R, vgambar3G, vgambar3B];
vgambar4R(k,1) = gambar4R(i,j);
vgambar4G(k,1) = gambar4G(i,j);
vgambar4B(k,1) = gambar4B(i,j);
mat_gambar4 = [vgambar4R, vgambar4G, vgambar4B];
vgambar5R(k,1) = gambar5R(i,j);
vgambar5G(k,1) = gambar5G(i,j);
vgambar5B(k,1) = gambar5B(i,j);
mat_gambar5 = [vgambar5R, vgambar5G, vgambar5B];
vgambar6R(k,1) = gambar6R(i,j);
vgambar6G(k,1) = gambar6G(i,j);
vgambar6B(k,1) = gambar6B(i,j);
mat_gambar6 = [vgambar6R, vgambar6G, vgambar6B];
vgambar7R(k,1) = gambar7R(i,j);
vgambar7G(k,1) = gambar7G(i,j);
vgambar7B(k,1) = gambar7B(i,j);
mat_gambar7 = [vgambar7R, vgambar7G, vgambar7B];
vgambar8R(k,1) = gambar8R(i,j);
vgambar8G(k,1) = gambar8G(i,j);
vgambar8B(k,1) = gambar8B(i,j);
mat_gambar8 = [vgambar8R, vgambar8G, vgambar8B];
vgambar9R(k,1) = gambar9R(i,j);
vgambar9G(k,1) = gambar9G(i,j);
vgambar9B(k,1) = gambar9B(i,j);
mat_gambar9 = [vgambar9R, vgambar9G, vgambar9B];
vgambar10R(k,1) = gambar10R(i,j);
vgambar10G(k,1) = gambar10G(i,j);
vgambar10B(k,1) = gambar10B(i,j);
mat_gambar10 = [vgambar10R, vgambar10G, vgambar10B];
vgambar11R(k,1) = gambar11R(i,j);
vgambar11G(k,1) = gambar11G(i,j);
vgambar11B(k,1) = gambar11B(i,j);
mat_gambar11 = [vgambar11R, vgambar11G, vgambar11B];
vgambar12R(k,1) = gambar12R(i,j);
vgambar12G(k,1) = gambar12G(i,j);
vgambar12B(k,1) = gambar12B(i,j);
mat_gambar12 = [vgambar12R, vgambar12G, vgambar12B];
vgambar13R(k,1) = gambar13R(i,j);
vgambar13G(k,1) = gambar13G(i,j);
vgambar13B(k,1) = gambar13B(i,j);
mat_gambar13 = [vgambar13R, vgambar13G, vgambar13B];
vgambar14R(k,1) = gambar14R(i,j);
vgambar14G(k,1) = gambar14G(i,j);
vgambar14B(k,1) = gambar14B(i,j);
mat_gambar14 = [vgambar14R, vgambar14G, vgambar14B];
vgambar15R(k,1) = gambar15R(i,j);
vgambar15G(k,1) = gambar15G(i,j);
vgambar15B(k,1) = gambar15B(i,j);
mat_gambar15 = [vgambar15R, vgambar15G, vgambar15B];
vgambar16R(k,1) = gambar16R(i,j);
vgambar16G(k,1) = gambar16G(i,j);
vgambar16B(k,1) = gambar16B(i,j);
mat_gambar16 = [vgambar16R, vgambar16G, vgambar16B];
vgambar17R(k,1) = gambar17R(i,j);
vgambar17G(k,1) = gambar17G(i,j);
vgambar17B(k,1) = gambar17B(i,j);
mat_gambar17 = [vgambar17R, vgambar17G, vgambar17B];
vgambar18R(k,1) = gambar18R(i,j);
vgambar18G(k,1) = gambar18G(i,j);
vgambar18B(k,1) = gambar18B(i,j);
mat_gambar18 = [vgambar18R, vgambar18G, vgambar18B];
vgambar19R(k,1) = gambar19R(i,j);
vgambar19G(k,1) = gambar19G(i,j);
vgambar19B(k,1) = gambar19B(i,j);
mat_gambar19 = [vgambar19R, vgambar19G, vgambar19B];
vgambar20R(k,1) = gambar20R(i,j);
vgambar20G(k,1) = gambar20G(i,j);
vgambar20B(k,1) = gambar20B(i,j);
mat_gambar20 = [vgambar20R, vgambar20G, vgambar20B];
vgambar21R(k,1) = gambar21R(i,j);
vgambar21G(k,1) = gambar21G(i,j);
vgambar21B(k,1) = gambar21B(i,j);
mat_gambar21 = [vgambar21R, vgambar21G, vgambar21B];
vgambar22R(k,1) = gambar22R(i,j);
vgambar22G(k,1) = gambar22G(i,j);
vgambar22B(k,1) = gambar22B(i,j);
mat_gambar22 = [vgambar22R, vgambar22G, vgambar22B];
vgambar23R(k,1) = gambar23R(i,j);
vgambar23G(k,1) = gambar23G(i,j);
vgambar23B(k,1) = gambar23B(i,j);
mat_gambar23 = [vgambar23R, vgambar23G, vgambar23B];
vgambar24R(k,1) = gambar24R(i,j);
vgambar24G(k,1) = gambar24G(i,j);
vgambar24B(k,1) = gambar24B(i,j);
mat_gambar24 = [vgambar24R, vgambar24G, vgambar24B];
vgambar25R(k,1) = gambar25R(i,j);
vgambar25G(k,1) = gambar25G(i,j);
vgambar25B(k,1) = gambar25B(i,j);
mat_gambar25 = [vgambar25R, vgambar25G, vgambar25B];
vgambar26R(k,1) = gambar26R(i,j);
vgambar26G(k,1) = gambar26G(i,j);
vgambar26B(k,1) = gambar26B(i,j);
mat_gambar26 = [vgambar26R, vgambar26G, vgambar26B];
vgambar27R(k,1) = gambar27R(i,j);
vgambar27G(k,1) = gambar27G(i,j);
vgambar27B(k,1) = gambar27B(i,j);
mat_gambar27 = [vgambar27R, vgambar27G, vgambar27B];
vgambar28R(k,1) = gambar28R(i,j);
vgambar28G(k,1) = gambar28G(i,j);
vgambar28B(k,1) = gambar28B(i,j);
mat_gambar28 = [vgambar28R, vgambar28G, vgambar28B];
vgambar29R(k,1) = gambar29R(i,j);
vgambar29G(k,1) = gambar29G(i,j);
vgambar29B(k,1) = gambar29B(i,j);
mat_gambar29 = [vgambar29R, vgambar29G, vgambar29B];
vgambar30R(k,1) = gambar30R(i,j);
vgambar30G(k,1) = gambar30G(i,j);
vgambar30B(k,1) = gambar30B(i,j);
mat_gambar30 = [vgambar30R, vgambar30G, vgambar30B];
k = k + 1;
end
end
% Merubah RGB ke Greyscale
GYS1 = 0.299 * mat_gambar1(:,1) + 0.587 * mat_gambar1(:,2) + 0.114 * mat_gambar1(:,3);
GYS2 = 0.299 * mat_gambar2(:,1) + 0.587 * mat_gambar2(:,2) + 0.114 * mat_gambar2(:,3);
GYS3 = 0.299 * mat_gambar3(:,1) + 0.587 * mat_gambar3(:,2) + 0.114 * mat_gambar3(:,3);
GYS4 = 0.299 * mat_gambar4(:,1) + 0.587 * mat_gambar4(:,2) + 0.114 * mat_gambar4(:,3);
GYS5 = 0.299 * mat_gambar5(:,1) + 0.587 * mat_gambar5(:,2) + 0.114 * mat_gambar5(:,3);
GYS6 = 0.299 * mat_gambar6(:,1) + 0.587 * mat_gambar6(:,2) + 0.114 * mat_gambar6(:,3);
GYS7 = 0.299 * mat_gambar7(:,1) + 0.587 * mat_gambar7(:,2) + 0.114 * mat_gambar7(:,3);
GYS8 = 0.299 * mat_gambar8(:,1) + 0.587 * mat_gambar8(:,2) + 0.114 * mat_gambar8(:,3);
GYS9 = 0.299 * mat_gambar9(:,1) + 0.587 * mat_gambar9(:,2) + 0.114 * mat_gambar9(:,3);
GYS10 = 0.299 * mat_gambar10(:,1) + 0.587 * mat_gambar10(:,2) + 0.114 * mat_gambar10(:,3);
GYS11 = 0.299 * mat_gambar11(:,1) + 0.587 * mat_gambar11(:,2) + 0.114 * mat_gambar11(:,3);
GYS12 = 0.299 * mat_gambar12(:,1) + 0.587 * mat_gambar12(:,2) + 0.114 * mat_gambar12(:,3);
GYS13 = 0.299 * mat_gambar13(:,1) + 0.587 * mat_gambar13(:,2) + 0.114 * mat_gambar13(:,3);
GYS14 = 0.299 * mat_gambar14(:,1) + 0.587 * mat_gambar14(:,2) + 0.114 * mat_gambar14(:,3);
GYS15 = 0.299 * mat_gambar15(:,1) + 0.587 * mat_gambar15(:,2) + 0.114 * mat_gambar15(:,3);
GYS16 = 0.299 * mat_gambar16(:,1) + 0.587 * mat_gambar16(:,2) + 0.114 * mat_gambar16(:,3);
GYS17 = 0.299 * mat_gambar17(:,1) + 0.587 * mat_gambar17(:,2) + 0.114 * mat_gambar17(:,3);
GYS18 = 0.299 * mat_gambar18(:,1) + 0.587 * mat_gambar18(:,2) + 0.114 * mat_gambar18(:,3);
GYS19 = 0.299 * mat_gambar19(:,1) + 0.587 * mat_gambar19(:,2) + 0.114 * mat_gambar19(:,3);
GYS20 = 0.299 * mat_gambar20(:,1) + 0.587 * mat_gambar20(:,2) + 0.114 * mat_gambar20(:,3);
GYS21 = 0.299 * mat_gambar21(:,1) + 0.587 * mat_gambar21(:,2) + 0.114 * mat_gambar21(:,3);
GYS22 = 0.299 * mat_gambar22(:,1) + 0.587 * mat_gambar22(:,2) + 0.114 * mat_gambar22(:,3);
GYS23 = 0.299 * mat_gambar23(:,1) + 0.587 * mat_gambar23(:,2) + 0.114 * mat_gambar23(:,3);
GYS24 = 0.299 * mat_gambar24(:,1) + 0.587 * mat_gambar24(:,2) + 0.114 * mat_gambar24(:,3);
GYS25 = 0.299 * mat_gambar25(:,1) + 0.587 * mat_gambar25(:,2) + 0.114 * mat_gambar25(:,3);
GYS26 = 0.299 * mat_gambar26(:,1) + 0.587 * mat_gambar26(:,2) + 0.114 * mat_gambar26(:,3);
GYS27 = 0.299 * mat_gambar27(:,1) + 0.587 * mat_gambar27(:,2) + 0.114 * mat_gambar27(:,3);
GYS28 = 0.299 * mat_gambar28(:,1) + 0.587 * mat_gambar28(:,2) + 0.114 * mat_gambar28(:,3);
GYS29 = 0.299 * mat_gambar29(:,1) + 0.587 * mat_gambar29(:,2) + 0.114 * mat_gambar29(:,3);
GYS30 = 0.299 * mat_gambar30(:,1) + 0.587 * mat_gambar30(:,2) + 0.114 * mat_gambar30(:,3);
GYS1 = GYS1';
GYS2 = GYS2';
GYS3 = GYS3';
GYS4 = GYS4';
GYS5 = GYS5';
GYS6 = GYS6';
GYS7 = GYS7';
GYS8 = GYS8';
GYS9 = GYS9';
GYS10 = GYS10';
GYS11 = GYS11';
GYS12 = GYS12';
GYS13 = GYS13';
GYS14 = GYS14';
GYS15 = GYS15';
GYS16 = GYS16';
GYS17 = GYS17';
GYS18 = GYS18';
GYS19 = GYS19';
GYS20 = GYS20';
GYS21 = GYS21';
GYS22 = GYS22';
GYS23 = GYS23';
GYS24 = GYS24';
GYS25 = GYS25';
GYS26 = GYS26';
GYS27 = GYS27';
GYS28 = GYS28';
GYS29 = GYS29';
GYS30 = GYS30';
DataGYS = [GYS1; GYS2; GYS3; GYS4; GYS5; GYS6; GYS7; GYS8; GYS9; GYS10; GYS11; GYS12; GYS13; GYS14; GYS15; GYS16; GYS17; GYS18; GYS19; GYS20; GYS21; GYS22; GYS23; GYS24; GYS25; GYS26; GYS27; GYS28; GYS29; GYS30;];
[n,p] = size(DataGYS);
Xrata = mean(DataGYS);
for i = 1:n
Z(i, :) = DataGYS(i, :) - Xrata;
end
S = cov(DataGYS);
for i = 1:n
for j = 1:p
Zr(i,j) = Z(i,j) / sqrt(S(j,j)); % Zr adalah data hasil normalisasi
end
end
Zcov = cov(Zr);
[VA, DA] = eig(Zcov);
m = 1
for i = p:-1:1
DA_urut(m,m) = DA(i,i);
VA_urut(m,:) = VA(i,:);
m = m+1;
end
for i = 1:p
eValue(i,1) = DA_urut(i,i);
end
Total = sum(eValue)
PK = 0;
komponen = 0;%jumlah komponen utama yang dipertahankan
for j = 1:p
proporsiValue(j,:) = eValue(j,1) / Total;%mengukur seberapa besar kontribusi eigenvalue ke-j terhadap varians total data.
if(PK < 0.9) % Nilai PK tergantung peneliti --> 0.8
PK = PK + proporsiValue(j, :);
komponen = komponen + 1;
end
end
VA_Komponen = VA_urut(:,1:komponen)
W = Z * VA_Komponen
plot3(W(:,1), W(:,2), W(:,3), '*')
grid on
| 1 | clear; clc; |
| 2 | |
| 3 | % Load image (Type : UINT8) |
| 4 | gambar1 = imread('Banana/1.jpg'); |
| 5 | gambar2 = imread('Banana/2.jpg'); |
| 6 | gambar3 = imread('Banana/3.jpg'); |
| 7 | gambar4 = imread('Banana/4.jpg'); |
| 8 | gambar5 = imread('Banana/5.jpg'); |
| 9 | gambar6 = imread('Banana/6.jpg'); |
| 10 | gambar7 = imread('Banana/7.jpg'); |
| 11 | gambar8 = imread('Banana/8.jpg'); |
| 12 | gambar9 = imread('Banana/9.jpg'); |
| 13 | gambar10 = imread('Banana/10.jpg'); |
| 14 | gambar11 = imread('Kiwi/1.jpg'); |
| 15 | gambar12 = imread('Kiwi/2.jpg'); |
| 16 | gambar13 = imread('Kiwi/3.jpg'); |
| 17 | gambar14 = imread('Kiwi/4.jpg'); |
| 18 | gambar15 = imread('Kiwi/5.jpg'); |
| 19 | gambar16 = imread('Kiwi/6.jpg'); |
| 20 | gambar17 = imread('Kiwi/7.jpg'); |
| 21 | gambar18 = imread('Kiwi/8.jpg'); |
| 22 | gambar19 = imread('Kiwi/9.jpg'); |
| 23 | gambar20 = imread('Kiwi/10.jpg'); |
| 24 | gambar21 = imread('Orange/1.jpg'); |
| 25 | gambar22 = imread('Orange/2.jpg'); |
| 26 | gambar23 = imread('Orange/3.jpg'); |
| 27 | gambar24 = imread('Orange/4.jpg'); |
| 28 | gambar25 = imread('Orange/5.jpg'); |
| 29 | gambar26 = imread('Orange/6.jpg'); |
| 30 | gambar27 = imread('Orange/7.jpg'); |
| 31 | gambar28 = imread('Orange/8.jpg'); |
| 32 | gambar29 = imread('Orange/9.jpg'); |
| 33 | gambar30 = imread('Orange/10.jpg'); |
| 34 | |
| 35 | % Konversi UINT8 menjadi double agar dapat di operasikan komputasinya |
| 36 | gambar1 = double(gambar1); |
| 37 | gambar2 = double(gambar2); |
| 38 | gambar3 = double(gambar3); |
| 39 | gambar4 = double(gambar4); |
| 40 | gambar5 = double(gambar5); |
| 41 | gambar6 = double(gambar6); |
| 42 | gambar7 = double(gambar7); |
| 43 | gambar8 = double(gambar8); |
| 44 | gambar9 = double(gambar9); |
| 45 | gambar10 = double(gambar10); |
| 46 | gambar11 = double(gambar11); |
| 47 | gambar12 = double(gambar12); |
| 48 | gambar13 = double(gambar13); |
| 49 | gambar14 = double(gambar14); |
| 50 | gambar15 = double(gambar15); |
| 51 | gambar16 = double(gambar16); |
| 52 | gambar17 = double(gambar17); |
| 53 | gambar18 = double(gambar18); |
| 54 | gambar19 = double(gambar19); |
| 55 | gambar20 = double(gambar20); |
| 56 | gambar21 = double(gambar21); |
| 57 | gambar22 = double(gambar22); |
| 58 | gambar23 = double(gambar23); |
| 59 | gambar24 = double(gambar24); |
| 60 | gambar25 = double(gambar25); |
| 61 | gambar26 = double(gambar26); |
| 62 | gambar27 = double(gambar27); |
| 63 | gambar28 = double(gambar28); |
| 64 | gambar29 = double(gambar29); |
| 65 | gambar30 = double(gambar30); |
| 66 | |
| 67 | % 1,2,3 itu layer, RGB itu warnanya |
| 68 | gambar1R = gambar1(:,:,1); % layer 1 |
| 69 | gambar1G = gambar1(:,:,2); % layer 2 |
| 70 | gambar1B = gambar1(:,:,3); % layer 3 |
| 71 | |
| 72 | gambar2R = gambar2(:,:,1); |
| 73 | gambar2G = gambar2(:,:,2); |
| 74 | gambar2B = gambar2(:,:,3); |
| 75 | |
| 76 | gambar3R = gambar3(:,:,1); |
| 77 | gambar3G = gambar3(:,:,2); |
| 78 | gambar3B = gambar3(:,:,3); |
| 79 | |
| 80 | gambar4R = gambar4(:,:,1); |
| 81 | gambar4G = gambar4(:,:,2); |
| 82 | gambar4B = gambar4(:,:,3); |
| 83 | |
| 84 | gambar5R = gambar5(:,:,1); |
| 85 | gambar5G = gambar5(:,:,2); |
| 86 | gambar5B = gambar5(:,:,3); |
| 87 | |
| 88 | gambar6R = gambar6(:,:,1); |
| 89 | gambar6G = gambar6(:,:,2); |
| 90 | gambar6B = gambar6(:,:,3); |
| 91 | |
| 92 | gambar7R = gambar7(:,:,1); |
| 93 | gambar7G = gambar7(:,:,2); |
| 94 | gambar7B = gambar7(:,:,3); |
| 95 | |
| 96 | gambar8R = gambar8(:,:,1); |
| 97 | gambar8G = gambar8(:,:,2); |
| 98 | gambar8B = gambar8(:,:,3); |
| 99 | |
| 100 | gambar9R = gambar9(:,:,1); |
| 101 | gambar9G = gambar9(:,:,2); |
| 102 | gambar9B = gambar9(:,:,3); |
| 103 | |
| 104 | gambar10R = gambar10(:,:,1); |
| 105 | gambar10G = gambar10(:,:,2); |
| 106 | gambar10B = gambar10(:,:,3); |
| 107 | |
| 108 | gambar11R = gambar11(:,:,1); |
| 109 | gambar11G = gambar11(:,:,2); |
| 110 | gambar11B = gambar11(:,:,3); |
| 111 | |
| 112 | gambar12R = gambar12(:,:,1); |
| 113 | gambar12G = gambar12(:,:,2); |
| 114 | gambar12B = gambar12(:,:,3); |
| 115 | |
| 116 | gambar13R = gambar13(:,:,1); |
| 117 | gambar13G = gambar13(:,:,2); |
| 118 | gambar13B = gambar13(:,:,3); |
| 119 | |
| 120 | gambar14R = gambar14(:,:,1); |
| 121 | gambar14G = gambar14(:,:,2); |
| 122 | gambar14B = gambar14(:,:,3); |
| 123 | |
| 124 | gambar15R = gambar15(:,:,1); |
| 125 | gambar15G = gambar15(:,:,2); |
| 126 | gambar15B = gambar15(:,:,3); |
| 127 | |
| 128 | gambar16R = gambar16(:,:,1); |
| 129 | gambar16G = gambar16(:,:,2); |
| 130 | gambar16B = gambar16(:,:,3); |
| 131 | |
| 132 | gambar17R = gambar17(:,:,1); |
| 133 | gambar17G = gambar17(:,:,2); |
| 134 | gambar17B = gambar17(:,:,3); |
| 135 | |
| 136 | gambar18R = gambar18(:,:,1); |
| 137 | gambar18G = gambar18(:,:,2); |
| 138 | gambar18B = gambar18(:,:,3); |
| 139 | |
| 140 | gambar19R = gambar19(:,:,1); |
| 141 | gambar19G = gambar19(:,:,2); |
| 142 | gambar19B = gambar19(:,:,3); |
| 143 | |
| 144 | gambar20R = gambar20(:,:,1); |
| 145 | gambar20G = gambar20(:,:,2); |
| 146 | gambar20B = gambar20(:,:,3); |
| 147 | |
| 148 | gambar21R = gambar21(:,:,1); |
| 149 | gambar21G = gambar21(:,:,2); |
| 150 | gambar21B = gambar21(:,:,3); |
| 151 | |
| 152 | gambar22R = gambar22(:,:,1); |
| 153 | gambar22G = gambar22(:,:,2); |
| 154 | gambar22B = gambar22(:,:,3); |
| 155 | |
| 156 | gambar23R = gambar23(:,:,1); |
| 157 | gambar23G = gambar23(:,:,2); |
| 158 | gambar23B = gambar23(:,:,3); |
| 159 | |
| 160 | gambar24R = gambar24(:,:,1); |
| 161 | gambar24G = gambar24(:,:,2); |
| 162 | gambar24B = gambar24(:,:,3); |
| 163 | |
| 164 | gambar25R = gambar25(:,:,1); |
| 165 | gambar25G = gambar25(:,:,2); |
| 166 | gambar25B = gambar25(:,:,3); |
| 167 | |
| 168 | gambar26R = gambar26(:,:,1); |
| 169 | gambar26G = gambar26(:,:,2); |
| 170 | gambar26B = gambar26(:,:,3); |
| 171 | |
| 172 | gambar27R = gambar27(:,:,1); |
| 173 | gambar27G = gambar27(:,:,2); |
| 174 | gambar27B = gambar27(:,:,3); |
| 175 | |
| 176 | gambar28R = gambar28(:,:,1); |
| 177 | gambar28G = gambar28(:,:,2); |
| 178 | gambar28B = gambar28(:,:,3); |
| 179 | |
| 180 | gambar29R = gambar29(:,:,1); |
| 181 | gambar29G = gambar29(:,:,2); |
| 182 | gambar29B = gambar29(:,:,3); |
| 183 | |
| 184 | gambar30R = gambar30(:,:,1); |
| 185 | gambar30G = gambar30(:,:,2); |
| 186 | gambar30B = gambar30(:,:,3); |
| 187 | |
| 188 | [n,p] = size(gambar1R); |
| 189 | |
| 190 | k = 1; |
| 191 | for i=1:n |
| 192 | for j=1:p |
| 193 | vgambar1R(k,1) = gambar1R(i,j); |
| 194 | vgambar1G(k,1) = gambar1G(i,j); |
| 195 | vgambar1B(k,1) = gambar1B(i,j); |
| 196 | mat_gambar1 = [vgambar1R, vgambar1G, vgambar1B]; |
| 197 | |
| 198 | |
| 199 | vgambar2R(k,1) = gambar2R(i,j); |
| 200 | vgambar2G(k,1) = gambar2G(i,j); |
| 201 | vgambar2B(k,1) = gambar2B(i,j); |
| 202 | mat_gambar2 = [vgambar2R, vgambar2G, vgambar2B]; |
| 203 | |
| 204 | |
| 205 | vgambar3R(k,1) = gambar3R(i,j); |
| 206 | vgambar3G(k,1) = gambar3G(i,j); |
| 207 | vgambar3B(k,1) = gambar3B(i,j); |
| 208 | mat_gambar3 = [vgambar3R, vgambar3G, vgambar3B]; |
| 209 | |
| 210 | |
| 211 | vgambar4R(k,1) = gambar4R(i,j); |
| 212 | vgambar4G(k,1) = gambar4G(i,j); |
| 213 | vgambar4B(k,1) = gambar4B(i,j); |
| 214 | mat_gambar4 = [vgambar4R, vgambar4G, vgambar4B]; |
| 215 | |
| 216 | |
| 217 | vgambar5R(k,1) = gambar5R(i,j); |
| 218 | vgambar5G(k,1) = gambar5G(i,j); |
| 219 | vgambar5B(k,1) = gambar5B(i,j); |
| 220 | mat_gambar5 = [vgambar5R, vgambar5G, vgambar5B]; |
| 221 | |
| 222 | |
| 223 | vgambar6R(k,1) = gambar6R(i,j); |
| 224 | vgambar6G(k,1) = gambar6G(i,j); |
| 225 | vgambar6B(k,1) = gambar6B(i,j); |
| 226 | mat_gambar6 = [vgambar6R, vgambar6G, vgambar6B]; |
| 227 | |
| 228 | |
| 229 | vgambar7R(k,1) = gambar7R(i,j); |
| 230 | vgambar7G(k,1) = gambar7G(i,j); |
| 231 | vgambar7B(k,1) = gambar7B(i,j); |
| 232 | mat_gambar7 = [vgambar7R, vgambar7G, vgambar7B]; |
| 233 | |
| 234 | |
| 235 | vgambar8R(k,1) = gambar8R(i,j); |
| 236 | vgambar8G(k,1) = gambar8G(i,j); |
| 237 | vgambar8B(k,1) = gambar8B(i,j); |
| 238 | mat_gambar8 = [vgambar8R, vgambar8G, vgambar8B]; |
| 239 | |
| 240 | |
| 241 | vgambar9R(k,1) = gambar9R(i,j); |
| 242 | vgambar9G(k,1) = gambar9G(i,j); |
| 243 | vgambar9B(k,1) = gambar9B(i,j); |
| 244 | mat_gambar9 = [vgambar9R, vgambar9G, vgambar9B]; |
| 245 | |
| 246 | |
| 247 | vgambar10R(k,1) = gambar10R(i,j); |
| 248 | vgambar10G(k,1) = gambar10G(i,j); |
| 249 | vgambar10B(k,1) = gambar10B(i,j); |
| 250 | mat_gambar10 = [vgambar10R, vgambar10G, vgambar10B]; |
| 251 | |
| 252 | |
| 253 | vgambar11R(k,1) = gambar11R(i,j); |
| 254 | vgambar11G(k,1) = gambar11G(i,j); |
| 255 | vgambar11B(k,1) = gambar11B(i,j); |
| 256 | mat_gambar11 = [vgambar11R, vgambar11G, vgambar11B]; |
| 257 | |
| 258 | |
| 259 | vgambar12R(k,1) = gambar12R(i,j); |
| 260 | vgambar12G(k,1) = gambar12G(i,j); |
| 261 | vgambar12B(k,1) = gambar12B(i,j); |
| 262 | mat_gambar12 = [vgambar12R, vgambar12G, vgambar12B]; |
| 263 | |
| 264 | |
| 265 | vgambar13R(k,1) = gambar13R(i,j); |
| 266 | vgambar13G(k,1) = gambar13G(i,j); |
| 267 | vgambar13B(k,1) = gambar13B(i,j); |
| 268 | mat_gambar13 = [vgambar13R, vgambar13G, vgambar13B]; |
| 269 | |
| 270 | |
| 271 | vgambar14R(k,1) = gambar14R(i,j); |
| 272 | vgambar14G(k,1) = gambar14G(i,j); |
| 273 | vgambar14B(k,1) = gambar14B(i,j); |
| 274 | mat_gambar14 = [vgambar14R, vgambar14G, vgambar14B]; |
| 275 | |
| 276 | |
| 277 | vgambar15R(k,1) = gambar15R(i,j); |
| 278 | vgambar15G(k,1) = gambar15G(i,j); |
| 279 | vgambar15B(k,1) = gambar15B(i,j); |
| 280 | mat_gambar15 = [vgambar15R, vgambar15G, vgambar15B]; |
| 281 | |
| 282 | |
| 283 | vgambar16R(k,1) = gambar16R(i,j); |
| 284 | vgambar16G(k,1) = gambar16G(i,j); |
| 285 | vgambar16B(k,1) = gambar16B(i,j); |
| 286 | mat_gambar16 = [vgambar16R, vgambar16G, vgambar16B]; |
| 287 | |
| 288 | |
| 289 | vgambar17R(k,1) = gambar17R(i,j); |
| 290 | vgambar17G(k,1) = gambar17G(i,j); |
| 291 | vgambar17B(k,1) = gambar17B(i,j); |
| 292 | mat_gambar17 = [vgambar17R, vgambar17G, vgambar17B]; |
| 293 | |
| 294 | |
| 295 | vgambar18R(k,1) = gambar18R(i,j); |
| 296 | vgambar18G(k,1) = gambar18G(i,j); |
| 297 | vgambar18B(k,1) = gambar18B(i,j); |
| 298 | mat_gambar18 = [vgambar18R, vgambar18G, vgambar18B]; |
| 299 | |
| 300 | |
| 301 | vgambar19R(k,1) = gambar19R(i,j); |
| 302 | vgambar19G(k,1) = gambar19G(i,j); |
| 303 | vgambar19B(k,1) = gambar19B(i,j); |
| 304 | mat_gambar19 = [vgambar19R, vgambar19G, vgambar19B]; |
| 305 | |
| 306 | |
| 307 | vgambar20R(k,1) = gambar20R(i,j); |
| 308 | vgambar20G(k,1) = gambar20G(i,j); |
| 309 | vgambar20B(k,1) = gambar20B(i,j); |
| 310 | mat_gambar20 = [vgambar20R, vgambar20G, vgambar20B]; |
| 311 | |
| 312 | |
| 313 | vgambar21R(k,1) = gambar21R(i,j); |
| 314 | vgambar21G(k,1) = gambar21G(i,j); |
| 315 | vgambar21B(k,1) = gambar21B(i,j); |
| 316 | mat_gambar21 = [vgambar21R, vgambar21G, vgambar21B]; |
| 317 | |
| 318 | vgambar22R(k,1) = gambar22R(i,j); |
| 319 | vgambar22G(k,1) = gambar22G(i,j); |
| 320 | vgambar22B(k,1) = gambar22B(i,j); |
| 321 | mat_gambar22 = [vgambar22R, vgambar22G, vgambar22B]; |
| 322 | |
| 323 | vgambar23R(k,1) = gambar23R(i,j); |
| 324 | vgambar23G(k,1) = gambar23G(i,j); |
| 325 | vgambar23B(k,1) = gambar23B(i,j); |
| 326 | mat_gambar23 = [vgambar23R, vgambar23G, vgambar23B]; |
| 327 | |
| 328 | vgambar24R(k,1) = gambar24R(i,j); |
| 329 | vgambar24G(k,1) = gambar24G(i,j); |
| 330 | vgambar24B(k,1) = gambar24B(i,j); |
| 331 | mat_gambar24 = [vgambar24R, vgambar24G, vgambar24B]; |
| 332 | |
| 333 | vgambar25R(k,1) = gambar25R(i,j); |
| 334 | vgambar25G(k,1) = gambar25G(i,j); |
| 335 | vgambar25B(k,1) = gambar25B(i,j); |
| 336 | mat_gambar25 = [vgambar25R, vgambar25G, vgambar25B]; |
| 337 | |
| 338 | vgambar26R(k,1) = gambar26R(i,j); |
| 339 | vgambar26G(k,1) = gambar26G(i,j); |
| 340 | vgambar26B(k,1) = gambar26B(i,j); |
| 341 | mat_gambar26 = [vgambar26R, vgambar26G, vgambar26B]; |
| 342 | |
| 343 | vgambar27R(k,1) = gambar27R(i,j); |
| 344 | vgambar27G(k,1) = gambar27G(i,j); |
| 345 | vgambar27B(k,1) = gambar27B(i,j); |
| 346 | mat_gambar27 = [vgambar27R, vgambar27G, vgambar27B]; |
| 347 | |
| 348 | vgambar28R(k,1) = gambar28R(i,j); |
| 349 | vgambar28G(k,1) = gambar28G(i,j); |
| 350 | vgambar28B(k,1) = gambar28B(i,j); |
| 351 | mat_gambar28 = [vgambar28R, vgambar28G, vgambar28B]; |
| 352 | |
| 353 | vgambar29R(k,1) = gambar29R(i,j); |
| 354 | vgambar29G(k,1) = gambar29G(i,j); |
| 355 | vgambar29B(k,1) = gambar29B(i,j); |
| 356 | mat_gambar29 = [vgambar29R, vgambar29G, vgambar29B]; |
| 357 | |
| 358 | vgambar30R(k,1) = gambar30R(i,j); |
| 359 | vgambar30G(k,1) = gambar30G(i,j); |
| 360 | vgambar30B(k,1) = gambar30B(i,j); |
| 361 | mat_gambar30 = [vgambar30R, vgambar30G, vgambar30B]; |
| 362 | |
| 363 | k = k + 1; |
| 364 | end |
| 365 | end |
| 366 | |
| 367 | % Merubah RGB ke Greyscale |
| 368 | GYS1 = 0.299 * mat_gambar1(:,1) + 0.587 * mat_gambar1(:,2) + 0.114 * mat_gambar1(:,3); |
| 369 | GYS2 = 0.299 * mat_gambar2(:,1) + 0.587 * mat_gambar2(:,2) + 0.114 * mat_gambar2(:,3); |
| 370 | GYS3 = 0.299 * mat_gambar3(:,1) + 0.587 * mat_gambar3(:,2) + 0.114 * mat_gambar3(:,3); |
| 371 | GYS4 = 0.299 * mat_gambar4(:,1) + 0.587 * mat_gambar4(:,2) + 0.114 * mat_gambar4(:,3); |
| 372 | GYS5 = 0.299 * mat_gambar5(:,1) + 0.587 * mat_gambar5(:,2) + 0.114 * mat_gambar5(:,3); |
| 373 | GYS6 = 0.299 * mat_gambar6(:,1) + 0.587 * mat_gambar6(:,2) + 0.114 * mat_gambar6(:,3); |
| 374 | GYS7 = 0.299 * mat_gambar7(:,1) + 0.587 * mat_gambar7(:,2) + 0.114 * mat_gambar7(:,3); |
| 375 | GYS8 = 0.299 * mat_gambar8(:,1) + 0.587 * mat_gambar8(:,2) + 0.114 * mat_gambar8(:,3); |
| 376 | GYS9 = 0.299 * mat_gambar9(:,1) + 0.587 * mat_gambar9(:,2) + 0.114 * mat_gambar9(:,3); |
| 377 | GYS10 = 0.299 * mat_gambar10(:,1) + 0.587 * mat_gambar10(:,2) + 0.114 * mat_gambar10(:,3); |
| 378 | GYS11 = 0.299 * mat_gambar11(:,1) + 0.587 * mat_gambar11(:,2) + 0.114 * mat_gambar11(:,3); |
| 379 | GYS12 = 0.299 * mat_gambar12(:,1) + 0.587 * mat_gambar12(:,2) + 0.114 * mat_gambar12(:,3); |
| 380 | GYS13 = 0.299 * mat_gambar13(:,1) + 0.587 * mat_gambar13(:,2) + 0.114 * mat_gambar13(:,3); |
| 381 | GYS14 = 0.299 * mat_gambar14(:,1) + 0.587 * mat_gambar14(:,2) + 0.114 * mat_gambar14(:,3); |
| 382 | GYS15 = 0.299 * mat_gambar15(:,1) + 0.587 * mat_gambar15(:,2) + 0.114 * mat_gambar15(:,3); |
| 383 | GYS16 = 0.299 * mat_gambar16(:,1) + 0.587 * mat_gambar16(:,2) + 0.114 * mat_gambar16(:,3); |
| 384 | GYS17 = 0.299 * mat_gambar17(:,1) + 0.587 * mat_gambar17(:,2) + 0.114 * mat_gambar17(:,3); |
| 385 | GYS18 = 0.299 * mat_gambar18(:,1) + 0.587 * mat_gambar18(:,2) + 0.114 * mat_gambar18(:,3); |
| 386 | GYS19 = 0.299 * mat_gambar19(:,1) + 0.587 * mat_gambar19(:,2) + 0.114 * mat_gambar19(:,3); |
| 387 | GYS20 = 0.299 * mat_gambar20(:,1) + 0.587 * mat_gambar20(:,2) + 0.114 * mat_gambar20(:,3); |
| 388 | GYS21 = 0.299 * mat_gambar21(:,1) + 0.587 * mat_gambar21(:,2) + 0.114 * mat_gambar21(:,3); |
| 389 | GYS22 = 0.299 * mat_gambar22(:,1) + 0.587 * mat_gambar22(:,2) + 0.114 * mat_gambar22(:,3); |
| 390 | GYS23 = 0.299 * mat_gambar23(:,1) + 0.587 * mat_gambar23(:,2) + 0.114 * mat_gambar23(:,3); |
| 391 | GYS24 = 0.299 * mat_gambar24(:,1) + 0.587 * mat_gambar24(:,2) + 0.114 * mat_gambar24(:,3); |
| 392 | GYS25 = 0.299 * mat_gambar25(:,1) + 0.587 * mat_gambar25(:,2) + 0.114 * mat_gambar25(:,3); |
| 393 | GYS26 = 0.299 * mat_gambar26(:,1) + 0.587 * mat_gambar26(:,2) + 0.114 * mat_gambar26(:,3); |
| 394 | GYS27 = 0.299 * mat_gambar27(:,1) + 0.587 * mat_gambar27(:,2) + 0.114 * mat_gambar27(:,3); |
| 395 | GYS28 = 0.299 * mat_gambar28(:,1) + 0.587 * mat_gambar28(:,2) + 0.114 * mat_gambar28(:,3); |
| 396 | GYS29 = 0.299 * mat_gambar29(:,1) + 0.587 * mat_gambar29(:,2) + 0.114 * mat_gambar29(:,3); |
| 397 | GYS30 = 0.299 * mat_gambar30(:,1) + 0.587 * mat_gambar30(:,2) + 0.114 * mat_gambar30(:,3); |
| 398 | |
| 399 | GYS1 = GYS1'; |
| 400 | GYS2 = GYS2'; |
| 401 | GYS3 = GYS3'; |
| 402 | GYS4 = GYS4'; |
| 403 | GYS5 = GYS5'; |
| 404 | GYS6 = GYS6'; |
| 405 | GYS7 = GYS7'; |
| 406 | GYS8 = GYS8'; |
| 407 | GYS9 = GYS9'; |
| 408 | GYS10 = GYS10'; |
| 409 | GYS11 = GYS11'; |
| 410 | GYS12 = GYS12'; |
| 411 | GYS13 = GYS13'; |
| 412 | GYS14 = GYS14'; |
| 413 | GYS15 = GYS15'; |
| 414 | GYS16 = GYS16'; |
| 415 | GYS17 = GYS17'; |
| 416 | GYS18 = GYS18'; |
| 417 | GYS19 = GYS19'; |
| 418 | GYS20 = GYS20'; |
| 419 | GYS21 = GYS21'; |
| 420 | GYS22 = GYS22'; |
| 421 | GYS23 = GYS23'; |
| 422 | GYS24 = GYS24'; |
| 423 | GYS25 = GYS25'; |
| 424 | GYS26 = GYS26'; |
| 425 | GYS27 = GYS27'; |
| 426 | GYS28 = GYS28'; |
| 427 | GYS29 = GYS29'; |
| 428 | GYS30 = GYS30'; |
| 429 | |
| 430 | DataGYS = [GYS1; GYS2; GYS3; GYS4; GYS5; GYS6; GYS7; GYS8; GYS9; GYS10; GYS11; GYS12; GYS13; GYS14; GYS15; GYS16; GYS17; GYS18; GYS19; GYS20; GYS21; GYS22; GYS23; GYS24; GYS25; GYS26; GYS27; GYS28; GYS29; GYS30;]; |
| 431 | |
| 432 | [n,p] = size(DataGYS); |
| 433 | Xrata = mean(DataGYS); |
| 434 | |
| 435 | for i = 1:n |
| 436 | Z(i, :) = DataGYS(i, :) - Xrata; |
| 437 | end |
| 438 | |
| 439 | S = cov(DataGYS); |
| 440 | |
| 441 | for i = 1:n |
| 442 | for j = 1:p |
| 443 | Zr(i,j) = Z(i,j) / sqrt(S(j,j)); % Zr adalah data hasil normalisasi |
| 444 | end |
| 445 | end |
| 446 | |
| 447 | Zcov = cov(Zr); |
| 448 | |
| 449 | [VA, DA] = eig(Zcov); |
| 450 | |
| 451 | m = 1 |
| 452 | for i = p:-1:1 |
| 453 | DA_urut(m,m) = DA(i,i); |
| 454 | VA_urut(m,:) = VA(i,:); |
| 455 | m = m+1; |
| 456 | end |
| 457 | |
| 458 | for i = 1:p |
| 459 | eValue(i,1) = DA_urut(i,i); |
| 460 | end |
| 461 | |
| 462 | Total = sum(eValue) |
| 463 | |
| 464 | PK = 0; |
| 465 | komponen = 0;%jumlah komponen utama yang dipertahankan |
| 466 | |
| 467 | for j = 1:p |
| 468 | proporsiValue(j,:) = eValue(j,1) / Total;%mengukur seberapa besar kontribusi eigenvalue ke-j terhadap varians total data. |
| 469 | if(PK < 0.9) % Nilai PK tergantung peneliti --> 0.8 |
| 470 | PK = PK + proporsiValue(j, :); |
| 471 | komponen = komponen + 1; |
| 472 | end |
| 473 | end |
| 474 | |
| 475 | VA_Komponen = VA_urut(:,1:komponen) |
| 476 | |
| 477 | W = Z * VA_Komponen |
| 478 | |
| 479 | plot3(W(:,1), W(:,2), W(:,3), '*') |
| 480 | |
| 481 | grid on |
2.m
· 4.9 KiB · Mathematica
Исходник
clear; clc;
% Get Data
gbr1 = imread('images/Banana/1.jpg');
gbr2 = imread('images/Banana/2.jpg');
gbr3 = imread('images/Banana/3.jpg');
gbr4 = imread('images/Banana/4.jpg');
gbr5 = imread('images/Banana/5.jpg');
gbr6 = imread('images/Banana/6.jpg');
gbr7 = imread('images/Banana/7.jpg');
gbr8 = imread('images/Banana/8.jpg');
gbr9 = imread('images/Banana/9.jpg');
gbr10 = imread('images/Banana/10.jpg');
gbr11 = imread('images/Kiwi/1.jpg');
gbr12 = imread('images/Kiwi/2.jpg');
gbr13 = imread('images/Kiwi/3.jpg');
gbr14 = imread('images/Kiwi/4.jpg');
gbr15 = imread('images/Kiwi/5.jpg');
gbr16 = imread('images/Kiwi/6.jpg');
gbr17 = imread('images/Kiwi/7.jpg');
gbr18 = imread('images/Kiwi/8.jpg');
gbr19 = imread('images/Kiwi/9.jpg');
gbr20 = imread('images/Kiwi/10.jpg');
gbr21 = imread('images/Orange/1.jpg');
gbr22 = imread('images/Orange/2.jpg');
gbr23 = imread('images/Orange/3.jpg');
gbr24 = imread('images/Orange/4.jpg');
gbr25 = imread('images/Orange/5.jpg');
gbr26 = imread('images/Orange/6.jpg');
gbr27 = imread('images/Orange/7.jpg');
gbr28 = imread('images/Orange/8.jpg');
gbr29 = imread('images/Orange/9.jpg');
gbr30 = imread('images/Orange/10.jpg');
gbr1=double(rgb2gray(gbr1));
gbr2=double(rgb2gray(gbr2));
gbr3=double(rgb2gray(gbr3));
gbr4=double(rgb2gray(gbr4));
gbr5=double(rgb2gray(gbr5));
gbr6=double(rgb2gray(gbr6));
gbr7=double(rgb2gray(gbr7));
gbr8=double(rgb2gray(gbr8));
gbr9=double(rgb2gray(gbr9));
gbr10=double(rgb2gray(gbr10));
gbr11=double(rgb2gray(gbr11));
gbr12=double(rgb2gray(gbr12));
gbr13=double(rgb2gray(gbr13));
gbr14=double(rgb2gray(gbr14));
gbr15=double(rgb2gray(gbr15));
gbr16=double(rgb2gray(gbr16));
gbr17=double(rgb2gray(gbr17));
gbr18=double(rgb2gray(gbr18));
gbr19=double(rgb2gray(gbr19));
gbr20=double(rgb2gray(gbr20));
gbr21=double(rgb2gray(gbr21));
gbr22=double(rgb2gray(gbr22));
gbr23=double(rgb2gray(gbr23));
gbr24=double(rgb2gray(gbr24));
gbr25=double(rgb2gray(gbr25));
gbr26=double(rgb2gray(gbr26));
gbr27=double(rgb2gray(gbr27));
gbr28=double(rgb2gray(gbr28));
gbr29=double(rgb2gray(gbr29));
gbr30=double(rgb2gray(gbr30));
gbr1=reshape(gbr1',1,[]);
gbr2=reshape(gbr2',1,[]);
gbr3=reshape(gbr3',1,[]);
gbr4=reshape(gbr4',1,[]);
gbr5=reshape(gbr5',1,[]);
gbr6=reshape(gbr6',1,[]);
gbr7=reshape(gbr7',1,[]);
gbr8=reshape(gbr8',1,[]);
gbr9=reshape(gbr9',1,[]);
gbr10=reshape(gbr10',1,[]);
gbr11=reshape(gbr11',1,[]);
gbr12=reshape(gbr12',1,[]);
gbr13=reshape(gbr13',1,[]);
gbr14=reshape(gbr14',1,[]);
gbr15=reshape(gbr15',1,[]);
gbr16=reshape(gbr16',1,[]);
gbr17=reshape(gbr17',1,[]);
gbr18=reshape(gbr18',1,[]);
gbr19=reshape(gbr19',1,[]);
gbr20=reshape(gbr20',1,[]);
gbr21=reshape(gbr21',1,[]);
gbr22=reshape(gbr22',1,[]);
gbr23=reshape(gbr23',1,[]);
gbr24=reshape(gbr24',1,[]);
gbr25=reshape(gbr25',1,[]);
gbr26=reshape(gbr26',1,[]);
gbr27=reshape(gbr27',1,[]);
gbr28=reshape(gbr28',1,[]);
gbr29=reshape(gbr29',1,[]);
gbr30=reshape(gbr30',1,[]);
X = [gbr1; gbr2; gbr3; gbr4; gbr5; gbr6; gbr7; gbr8; gbr9; gbr10; gbr11; gbr12; gbr13; gbr14; gbr15; gbr16; gbr17; gbr18; gbr19; gbr20; gbr21; gbr22; gbr23; gbr24; gbr25; gbr26; gbr27; gbr28; gbr29; gbr30];
[n,p] = size(X);
Xrata = mean(X, 1);
%1. mengurangi setiap variable dengan rata2nya (normalisasi data)
Z = zeros(size(X));
for i = 1:n
Z(i, :) = X(i, :)-Xrata;
end
%Menghitung covariance matrix
S = cov(X); % varian
%Standardization Data
Zr = zeros(size(Z));
for i = 1:n
for j = 1:p
Zr(i,j) = Z(i,j) / sqrt(S(j,j));
end
end
% Zr ADALAH HASIL DARI NORMALISASI DATA X (DATA AWAL)
%2. Menghitung cov dari data yang sudah direduksi
Zcov = cov(Zr); % matrix covarian dari variable hasil normalisasi Zr
%3. Menghitung eigen value dan eigen vector dari Zcov
[VA, DA] = eig(Zcov); % VA = Eigen Vector ; DA = Eigen Value
%4. menghitung komponen utama
% Hasil library matlab eig() --> hasil = diagonal utamanya urut dari kecil ke besar
% yang diperlukan dari besar ke kecil
%mengurutkan hasil eigen (DESC)
m = 1;
for i = p:-1:1
DA_urut(m,m) = DA(i,i);
VA_urut(m,:) = VA(:,i)';
m = m+1;
end
%menghitung komponen utama
eValue = zeros(p, 1);
for i = 1:p
eValue(i,1) = DA_urut(i,i);
end
Total = sum(eValue); % total varians dalam data asli yang dapat dijelaskan oleh seluruh komponen utama.
% Proporsi kumulatif = mengambil data seberapa persen secara kumulatif yang
% dianggap perlu
PK = 0;
komponen = 0; % jumlah komponen utama yang dipertahankan
proporsiValue = zeros(p, 1);
for j = 1:p
proporsiValue(j) = eValue(j,1) / Total; % mengukur seberapa besar kontribusi eigenvalue ke-j terhadap varians total data.
if(PK < 0.9) % Nilai PK tergantung peneliti --> 0.8
PK = PK + proporsiValue(j);
komponen = komponen + 1;
end
end
% Mengambil eigen vector dari komponen yang terpilih
VA_Komponen = VA_urut(:,1:komponen);
% W = variable komponen utama / principal component variable
W = Zr * VA_Komponen; % W ADALAH FINAL DATA YANG DISEBUTKAN DI PDF
plot3(W(:,1), W(:,2), W(:,3), '*'); % PK < 0.9
%plot(W(:,1), W(:,2), '*'); % PK < 0.8
grid on
| 1 | clear; clc; |
| 2 | |
| 3 | % Get Data |
| 4 | gbr1 = imread('images/Banana/1.jpg'); |
| 5 | gbr2 = imread('images/Banana/2.jpg'); |
| 6 | gbr3 = imread('images/Banana/3.jpg'); |
| 7 | gbr4 = imread('images/Banana/4.jpg'); |
| 8 | gbr5 = imread('images/Banana/5.jpg'); |
| 9 | gbr6 = imread('images/Banana/6.jpg'); |
| 10 | gbr7 = imread('images/Banana/7.jpg'); |
| 11 | gbr8 = imread('images/Banana/8.jpg'); |
| 12 | gbr9 = imread('images/Banana/9.jpg'); |
| 13 | gbr10 = imread('images/Banana/10.jpg'); |
| 14 | gbr11 = imread('images/Kiwi/1.jpg'); |
| 15 | gbr12 = imread('images/Kiwi/2.jpg'); |
| 16 | gbr13 = imread('images/Kiwi/3.jpg'); |
| 17 | gbr14 = imread('images/Kiwi/4.jpg'); |
| 18 | gbr15 = imread('images/Kiwi/5.jpg'); |
| 19 | gbr16 = imread('images/Kiwi/6.jpg'); |
| 20 | gbr17 = imread('images/Kiwi/7.jpg'); |
| 21 | gbr18 = imread('images/Kiwi/8.jpg'); |
| 22 | gbr19 = imread('images/Kiwi/9.jpg'); |
| 23 | gbr20 = imread('images/Kiwi/10.jpg'); |
| 24 | gbr21 = imread('images/Orange/1.jpg'); |
| 25 | gbr22 = imread('images/Orange/2.jpg'); |
| 26 | gbr23 = imread('images/Orange/3.jpg'); |
| 27 | gbr24 = imread('images/Orange/4.jpg'); |
| 28 | gbr25 = imread('images/Orange/5.jpg'); |
| 29 | gbr26 = imread('images/Orange/6.jpg'); |
| 30 | gbr27 = imread('images/Orange/7.jpg'); |
| 31 | gbr28 = imread('images/Orange/8.jpg'); |
| 32 | gbr29 = imread('images/Orange/9.jpg'); |
| 33 | gbr30 = imread('images/Orange/10.jpg'); |
| 34 | gbr1=double(rgb2gray(gbr1)); |
| 35 | gbr2=double(rgb2gray(gbr2)); |
| 36 | gbr3=double(rgb2gray(gbr3)); |
| 37 | gbr4=double(rgb2gray(gbr4)); |
| 38 | gbr5=double(rgb2gray(gbr5)); |
| 39 | gbr6=double(rgb2gray(gbr6)); |
| 40 | gbr7=double(rgb2gray(gbr7)); |
| 41 | gbr8=double(rgb2gray(gbr8)); |
| 42 | gbr9=double(rgb2gray(gbr9)); |
| 43 | gbr10=double(rgb2gray(gbr10)); |
| 44 | gbr11=double(rgb2gray(gbr11)); |
| 45 | gbr12=double(rgb2gray(gbr12)); |
| 46 | gbr13=double(rgb2gray(gbr13)); |
| 47 | gbr14=double(rgb2gray(gbr14)); |
| 48 | gbr15=double(rgb2gray(gbr15)); |
| 49 | gbr16=double(rgb2gray(gbr16)); |
| 50 | gbr17=double(rgb2gray(gbr17)); |
| 51 | gbr18=double(rgb2gray(gbr18)); |
| 52 | gbr19=double(rgb2gray(gbr19)); |
| 53 | gbr20=double(rgb2gray(gbr20)); |
| 54 | gbr21=double(rgb2gray(gbr21)); |
| 55 | gbr22=double(rgb2gray(gbr22)); |
| 56 | gbr23=double(rgb2gray(gbr23)); |
| 57 | gbr24=double(rgb2gray(gbr24)); |
| 58 | gbr25=double(rgb2gray(gbr25)); |
| 59 | gbr26=double(rgb2gray(gbr26)); |
| 60 | gbr27=double(rgb2gray(gbr27)); |
| 61 | gbr28=double(rgb2gray(gbr28)); |
| 62 | gbr29=double(rgb2gray(gbr29)); |
| 63 | gbr30=double(rgb2gray(gbr30)); |
| 64 | |
| 65 | gbr1=reshape(gbr1',1,[]); |
| 66 | gbr2=reshape(gbr2',1,[]); |
| 67 | gbr3=reshape(gbr3',1,[]); |
| 68 | gbr4=reshape(gbr4',1,[]); |
| 69 | gbr5=reshape(gbr5',1,[]); |
| 70 | gbr6=reshape(gbr6',1,[]); |
| 71 | gbr7=reshape(gbr7',1,[]); |
| 72 | gbr8=reshape(gbr8',1,[]); |
| 73 | gbr9=reshape(gbr9',1,[]); |
| 74 | gbr10=reshape(gbr10',1,[]); |
| 75 | gbr11=reshape(gbr11',1,[]); |
| 76 | gbr12=reshape(gbr12',1,[]); |
| 77 | gbr13=reshape(gbr13',1,[]); |
| 78 | gbr14=reshape(gbr14',1,[]); |
| 79 | gbr15=reshape(gbr15',1,[]); |
| 80 | gbr16=reshape(gbr16',1,[]); |
| 81 | gbr17=reshape(gbr17',1,[]); |
| 82 | gbr18=reshape(gbr18',1,[]); |
| 83 | gbr19=reshape(gbr19',1,[]); |
| 84 | gbr20=reshape(gbr20',1,[]); |
| 85 | gbr21=reshape(gbr21',1,[]); |
| 86 | gbr22=reshape(gbr22',1,[]); |
| 87 | gbr23=reshape(gbr23',1,[]); |
| 88 | gbr24=reshape(gbr24',1,[]); |
| 89 | gbr25=reshape(gbr25',1,[]); |
| 90 | gbr26=reshape(gbr26',1,[]); |
| 91 | gbr27=reshape(gbr27',1,[]); |
| 92 | gbr28=reshape(gbr28',1,[]); |
| 93 | gbr29=reshape(gbr29',1,[]); |
| 94 | gbr30=reshape(gbr30',1,[]); |
| 95 | |
| 96 | X = [gbr1; gbr2; gbr3; gbr4; gbr5; gbr6; gbr7; gbr8; gbr9; gbr10; gbr11; gbr12; gbr13; gbr14; gbr15; gbr16; gbr17; gbr18; gbr19; gbr20; gbr21; gbr22; gbr23; gbr24; gbr25; gbr26; gbr27; gbr28; gbr29; gbr30]; |
| 97 | [n,p] = size(X); |
| 98 | Xrata = mean(X, 1); |
| 99 | |
| 100 | %1. mengurangi setiap variable dengan rata2nya (normalisasi data) |
| 101 | Z = zeros(size(X)); |
| 102 | for i = 1:n |
| 103 | Z(i, :) = X(i, :)-Xrata; |
| 104 | end |
| 105 | |
| 106 | %Menghitung covariance matrix |
| 107 | S = cov(X); % varian |
| 108 | |
| 109 | %Standardization Data |
| 110 | Zr = zeros(size(Z)); |
| 111 | for i = 1:n |
| 112 | for j = 1:p |
| 113 | Zr(i,j) = Z(i,j) / sqrt(S(j,j)); |
| 114 | end |
| 115 | end |
| 116 | % Zr ADALAH HASIL DARI NORMALISASI DATA X (DATA AWAL) |
| 117 | |
| 118 | %2. Menghitung cov dari data yang sudah direduksi |
| 119 | Zcov = cov(Zr); % matrix covarian dari variable hasil normalisasi Zr |
| 120 | |
| 121 | %3. Menghitung eigen value dan eigen vector dari Zcov |
| 122 | [VA, DA] = eig(Zcov); % VA = Eigen Vector ; DA = Eigen Value |
| 123 | |
| 124 | %4. menghitung komponen utama |
| 125 | % Hasil library matlab eig() --> hasil = diagonal utamanya urut dari kecil ke besar |
| 126 | % yang diperlukan dari besar ke kecil |
| 127 | %mengurutkan hasil eigen (DESC) |
| 128 | m = 1; |
| 129 | for i = p:-1:1 |
| 130 | DA_urut(m,m) = DA(i,i); |
| 131 | VA_urut(m,:) = VA(:,i)'; |
| 132 | m = m+1; |
| 133 | end |
| 134 | |
| 135 | %menghitung komponen utama |
| 136 | eValue = zeros(p, 1); |
| 137 | for i = 1:p |
| 138 | eValue(i,1) = DA_urut(i,i); |
| 139 | end |
| 140 | |
| 141 | Total = sum(eValue); % total varians dalam data asli yang dapat dijelaskan oleh seluruh komponen utama. |
| 142 | |
| 143 | % Proporsi kumulatif = mengambil data seberapa persen secara kumulatif yang |
| 144 | % dianggap perlu |
| 145 | PK = 0; |
| 146 | komponen = 0; % jumlah komponen utama yang dipertahankan |
| 147 | |
| 148 | proporsiValue = zeros(p, 1); |
| 149 | for j = 1:p |
| 150 | proporsiValue(j) = eValue(j,1) / Total; % mengukur seberapa besar kontribusi eigenvalue ke-j terhadap varians total data. |
| 151 | if(PK < 0.9) % Nilai PK tergantung peneliti --> 0.8 |
| 152 | PK = PK + proporsiValue(j); |
| 153 | komponen = komponen + 1; |
| 154 | end |
| 155 | end |
| 156 | |
| 157 | % Mengambil eigen vector dari komponen yang terpilih |
| 158 | VA_Komponen = VA_urut(:,1:komponen); |
| 159 | % W = variable komponen utama / principal component variable |
| 160 | W = Zr * VA_Komponen; % W ADALAH FINAL DATA YANG DISEBUTKAN DI PDF |
| 161 | |
| 162 | plot3(W(:,1), W(:,2), W(:,3), '*'); % PK < 0.9 |
| 163 | %plot(W(:,1), W(:,2), '*'); % PK < 0.8 |
| 164 | grid on |