我在matlab中的image_area上创建了一个多边形。 我用了impoly。 但创建多边形后。 我需要阻止移动和拖动impoly的可能性(ROI已经创建)。 我不知道该怎么办?
我很感激你的帮助。
答案 0 :(得分:0)
您可以将makeConstrainToRectFcn设置为包含ROI的矩形,然后每当您尝试移动后者时,它都将无效。您还可以在创建ROI后将setVerticesDraggable
方法设置为false,以防止拖动顶点。
示例代码(改编自Mathworks的示例):
clc
clear
figure
imshow('gantrycrane.png');
h = impoly(gca, [188,30; 189,142; 93,141; 13,41; 14,29]);
%// Get currentposition
Pos = getPosition(h);
%// Prevent draggable vertices
setVerticesDraggable(h,0);
%// Set up rectangle to prvent movement of ROI
fcn = makeConstrainToRectFcn('impoly', [min(Pos(:,1)) max(Pos(:,1))], [min(Pos(:,2)) max(Pos(:,2))]);
%// Apply function
h.setPositionConstraintFcn(fcn);
导致这种情况(用红色矩形表示):