Specify maximum number of sides in impoly

1 回表示 (過去 30 日間)
Gee
Gee 2016 年 6 月 8 日
I'm trying to draw a polygon on a figure with a maximum of 4 sides per polygon, but I'm not sure how to limit the number of sides a polygon can be. Also, if the user draws 4 lines but the 4th doesn't connect to the beginning of the 1st line, is it possible to automatically connect the two lines? Does anyone know how these two things could be done?
This is what I've got so far:
vidObj = VideoReader('final1.mp4');
vidHeight = vidObj.Height;
vidWidth = vidObj.Width;
s = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
'colormap',[]);
k = 1;
while hasFrame(vidObj)
s(k).cdata = readFrame(vidObj);
k = k+1;
end
% select ROI
figure('Name','Please Click to Select ROI');
imshow(s(1).cdata)
l = 1;
numBoxes = 4;
h = zeros(4,2,numBoxes);
pos = zeros(4,2,l);
C = {'b','r','g','y'}; % Cell array of colros.
while l <= numBoxes
api = iptgetapi(h(:,:,l));
api.setColor(C(l));
api.addNewPositionCallback(@(p) title(['Draw ROI for box ' l]));
h(l) = impoly();
pos(:,:,l) = ceil(getPosition(h(l)));
l = l + 1;
end

回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by