How to solve Function 'subsindex' is not defined of class 'strel'

2 visualizzazioni (ultimi 30 giorni)
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'];
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

Risposta accettata

Rik il 16 Dic 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 Commenti

Accedi per commentare.

Più risposte (0)




Community Treasure Hunt

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

Start Hunting!

Translated by