Info

此问题已关闭。 请重新打开它进行编辑或回答。

My accuration zero percent. What's wrong?

2 次查看(过去 30 天)
Bima Putra
Bima Putra 2019-12-19
关闭: MATLAB Answer Bot 2021-8-20
Good morning everyone. My accuration 0% what's wrong with it?
Screenshot_1.jpg
This my code. Thank you so much before.
close all
clear all
e = imread('E:\Latihan MATLAB\Project_UAS\Training\huruf-a\2.jpg');
figure, imshow(e);
t = graythresh(e);
imbw_otsu = im2bw(e,t);
figure, imshow(imbw_otsu);
se = strel('disk',1);
citra_close = imclose(e,se);
figure, imshow(citra_close);
imbw_manual = im2bw(citra_close, 115/255);
figure, imshow(imbw_manual);
imbw_manual3 = 1 - imbw_manual;
figure, imshow(imbw_manual3);
traindir = 'Training';
testdir = 'Testing';
huruflist = dir(traindir);
huruflist(1) = [];
huruflist(1) = [];
huruflist = {huruflist.name}';
train_data = [];
for i=1:size(huruflist,1)
train_kelas = huruflist{i};
imglist = dir([traindir '\' train_kelas]);
imglist(1) = [];
imglist(1) = [];
imglist = {imglist.name}';
for j=1:size(imglist,1)
imgname = imglist{j};
iminput = imread([traindir '\' train_kelas '\' imgname]);
% imgray = rgb2gray(iminput);
t = graythresh(iminput);
imbw_otsu = im2bw(iminput,t);
se = strel('disk',1);
citra_close = imclose(iminput,se);
imbw_manual = im2bw(citra_close, 115/255);
imbw_manual3 = 1 - imbw_manual;
s = regionprops(imbw_manual3, 'Eccentricity', 'Area', 'Perimeter');
eccentricity = cat(1, s.Eccentricity);
area = cat(1, s.Area);
perimeter = cat(1, s.Perimeter);
rasio_luaskeliling = area / perimeter;
train_data = [train_data; {train_kelas}, imgname, eccentricity, rasio_luaskeliling];
end
end
xlswrite('train_features.xlsx', train_data, 1, 'A1');
testlisthuruf = dir(testdir);
testlisthuruf(1) = [];
testlisthuruf(1) = [];
testlisthuruf = {testlisthuruf.name}';
testimgdir = 'Test Images';
if ~exist(testimgdir)
mkdir(testimgdir);
end
test_data = [];
for i=1:size(testlisthuruf,1)
imgname = testlisthuruf{i};
test_class = imgname(1:end-4);
iminput = imread([testdir '\' imgname]);
% imgray = rgb2gray(iminput);
t = graythresh(iminput);
imbw_otsu = im2bw(iminput,t);
se = strel('disk',1);
citra_close = imclose(iminput,se);
imbw_manual = im2bw(citra_close, 115/255);
imbw_manual3 = 1 - imbw_manual;
s = regionprops(imbw_manual3, 'Eccentricity', 'Area', 'Perimeter');
eccentricity = cat(1, s.Eccentricity);
area = cat(1, s.Area);
perimeter = cat(1, s.Perimeter);
rasio_luaskeliling = area / perimeter;
test_data = [test_data; {test_class}, eccentricity, rasio_luaskeliling];
end
[num, raw] = xlsread('train_features.xlsx');
trainX = num(:,:);
trainY = raw(:,1);
testX = cell2mat(test_data(:,2:end));
testY = test_data(:,1);
categories = {'huruf-a';'huruf-e';'huruf-i';'huruf-o';'huruf-u'};
result = cell(size(testY));
numClasses = size(categories,1);
for i=1:numClasses
G1vAll=(strcmp(trainY,categories(i)));
models(i) = svmtrain(trainX, G1vAll, 'kernel_function', 'linear');
end
for i=1:size(testX,1)
for j=1:numClasses
if(svmclassify(models(j),testX(i,:)))
break;
end
end
result(i) = categories(j);
end
accuracy = 0;
for i=1:size(result,1)
if (strcmp(result(i),testY(i)))
accuracy = accuracy + 1;
end
end
[gr_w gr_h] = size(testY);
accuracy = (accuracy / gr_w)*100;
disp(['Akurasi = ' num2str(accuracy) '%']);

回答(0 个)

此问题已关闭。

标签

产品


版本

R2016a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by