How to solve Function 'subsindex' is not defined of class 'strel'
1 view (last 30 days)
Show older comments
Bachtiar Muhammad Lubis
on 16 Dec 2018
Commented: Bachtiar Muhammad Lubis
on 20 Dec 2018
i ran this code :
my_folder = 'D:\pcd\tester\ocr\training_set\training_set';
filenames =dir(fullfile(my_folder,'*.bmp'));
total_images = numel(filenames);
input108_2 = [];
se = strel('square', 3);
pad = 2;
%ft =[];
for n = 1 : total_images
fullname = fullfile(my_folder, filenames(n).name);
%our_images = logical(imread(fullname));
rgb = rgb2gray(imread(fullname));
bw = im2bw(rgb, graythresh(rgb));
bw2 = bwareaopen(bw, 15);
%bw2 = padarray(bw2, [pad pad], 'both'); % Adding Pads
iedge = edge(uint8(bw2)); % edge detection operation
imdilate = imdilate(iedge, se); % dilation operation
imfill = imfill(imdilate, 'holes');
our_images = imfill & bw2;
thinImage = bwmorph(our_images, 'thin', Inf); % thinning Operation
%thinImage = thinImage(pad+1:end-1, pad+1:end-1); % Removing Pads
feature = feature_extract(thinImage);
input108_2 = [input108_2; feature'];
end
but i got this error message:
Function 'subsindex' is not defined for values of class 'strel'.
Error in dataTrain (line 17)
imdilate = imdilate(iedge, se); % dilation operation
i'd seen for line that given error. but i think there isn't something wrong with it.
Please someone help me to solve this.
Thanks before
0 Comments
Accepted Answer
Rik
on 16 Dec 2018
You have overwritten the function imdilate with a variable imdilate. So now, the second time your code gets to that line it tries to subindex the variable imdilate with the iedge and se variables. The easy fix is by using a different name for the variable.
im_dilate = imdilate(iedge, se); % dilation operation
im_fill = im_fill(im_dilate, 'holes');
our_images = im_fill & bw2;
4 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!