如何在matlab中阻止编辑/拖动impoly的可能性?

时间:2016-07-14 15:09:06

标签: image matlab image-processing matlab-guide

我在matlab中的image_area上创建了一个多边形。 我用了impoly。 但创建多边形后。 我需要阻止移动和拖动impoly的可能性(ROI已经创建)。 我不知道该怎么办?

我很感激你的帮助。

1 个答案:

答案 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);

导致这种情况(用红色矩形表示):

enter image description here