如何在 matlab 中阻止 edit/drag impoly 的可能性?
How to block possibility to edit/drag impoly in matlab?
我在 matlab 中的 image_area 上创建了一个多边形。
我用了impoly。
但是在创建多边形之后。
我需要阻止移动和拖动 impoly 的可能性(ROI 已经创建)。
我不知道该怎么办?
如有任何帮助,我将不胜感激。
您可以将 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);
造成这种情况(红色方框说明):
我在 matlab 中的 image_area 上创建了一个多边形。 我用了impoly。 但是在创建多边形之后。 我需要阻止移动和拖动 impoly 的可能性(ROI 已经创建)。 我不知道该怎么办?
如有任何帮助,我将不胜感激。
您可以将 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);
造成这种情况(红色方框说明):