Tuesday, February 20, 2018

Klasifikasi pengolahan citra dua objek menggunakan jaringan saraf tiruan

Pengolahan citra menggunakan algoritma jaringan saraf tiruan dengan membandingkan dua objek berdasarkan klasifikasi wanita berjilbab dan tidak berjilbab.


Source Code
imgPath = 'D:\Document\Lecture\Tesis\Data Citra\Klasifikasi\';
imgExt = '*.jpg';
sizeResize = 35;
imageFiles = dir(strcat(imgPath, imgExt));      
countFiles = length(imageFiles);
arrInputColumn = sizeResize * sizeResize;
arrInputRow = 100;
arrInput = zeros(arrInputColumn:arrInputRow);
for i=1:countFiles
    currentFileName = imageFiles(i).name;
    img = imread(strcat(imgPath, currentFileName));
    imgResize = imresize(img, [sizeResize, sizeResize]);   
    imgGray = rgb2gray(imgResize);
    imgEH = histeq(imgGray);
    imgEdge = edge(imgEH, 'canny', 0.2);    
    
    imwrite(imgResize, strcat(imgPath, strcat('preprocessing\resize\', currentFileName)));
    imwrite(imgGray, strcat(imgPath, strcat('preprocessing\grayscale\', currentFileName)));
    imwrite(imgEH, strcat(imgPath, strcat('preprocessing\equaliasihistogram\', currentFileName)));
    imwrite(imgEdge, strcat(imgPath, strcat('preprocessing\edgedetection\', currentFileName)));
    
    imgTranspose1 = reshape(imgEdge.', 1, []);
    imgTranspose2 = imgTranspose1(:);
    arrInput(i, :) = imgTranspose2;
end
input = arrInput.';
countColumn = sizeResize * sizeResize;
inputLatihJilbab = input(1:countColumn, 1:25);
inputLatihNonJilbab = input(1:countColumn, 51:75);
inputLatih = [inputLatihJilbab, inputLatihNonJilbab];

inputTestJilbab = input(1:countColumn, 26:50);
inputTestNonJilbab = input(1:countColumn, 76:100);
inputTest = [inputTestJilbab, inputTestNonJilbab];

target1 = zeros(1:2);
target2 = zeros(1:2);
countRowTarget = 25;
for(j=1:countRowTarget)
    target1(j) = 1;
    target2(j) = 0;
end
targetLatih = [target1, target2];
targetTest = [target1, target2];