I keep receiving an error saying "execution of script drawpolygon as a function is not supported", even though it has previously worked.
1 view (last 30 days)
Show older comments
My code:
for k=1:3
c{k} = zeros(1,3);
end
for k = 1:3
tmp = input(['Press any key to draw Polygon # ' int2str(k) ': ']);
close all, imshow(I), title(['Polygon # ' int2str(k)])
h = drawpolygon;
% The vertices of k-th polygon is recorded in polyin{k}
polyin{k} = polyshape(h.Position); % create a polygon object
[cx,cy] = centroid(polyin{k});
c{k}(1:2) = round([cx cy],0); % unit: pixels
c{k}(3) = round(area(polyin{k}),0)*p2cm; % unit: cm^2
if k==3
tmp = input('Press any key to complete.')
end
disp(['Centroid of polygon: [' int2str([cx cy]) ']'])
disp(['Area of polygon = ' int2str(c{k}(3)) 'cm^2'])
end
The error:
The code is being used to draw 3 different polygons on one image.
Thanks!
0 Comments
Accepted Answer
More Answers (1)
Jan
on 7 Mar 2022
Edited: Jan
on 7 Mar 2022
The message means, that drawpolygon is a script. Then it does not have input nd output arguments:
h = drawpolygon;
% ^^^ omit this
But you do need the handle h later. Therefore I guess, that the line, which defines the script as a function was deleted by accident. What is the contents of drawpolygon.mlx?
0 Comments
See Also
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!