Main Content


(Not recommended) Create draggable point

impoint is not recommended. Use the new Point ROI object instead. You can also use the new ROI creation convenience function drawpoint. For more information, see Compatibility Considerations.


An impoint object encapsulates an interactive point over an image.

You can adjust the position of the point by using the mouse. The point also has a context menu that controls aspects of its appearance and behavior. For more information, see Usage.



h = impoint begins interactive placement of a point on the current axes, and returns an impoint object.

h = impoint(hparent) begins interactive placement of a point on the object specified by hparent.

h = impoint(hparent,position) creates a draggable point with coordinates defined by position.


h = impoint(hparent,x,y) creates a draggable point with (x, y) coordinates defined by x and y.

h = impoint(___,"PositionConstraintFcn",fcn) also specifies where the point can be dragged using a position constraint function, fcn.

Input Arguments

expand all

Handle to parent object, specified as a handle. The parent is typically an axes object, but can also be any other object that can be the parent of an hggroup object.

Position of point, specified as a 2-element vector of the form [x y].

x-coordinate of the point, specified as a numeric scalar.

y-coordinate of the point, specified as a numeric scalar.

Position constraint function, specified as a function handle. fcn is called whenever the mouse is dragged. You can use this function to control where the ellipse can be dragged. See the help for the setPositionConstraintFcn function for information about valid function handles.


expand all

ROI can be deleted, specified as true or false.

Data Types: logical


When you call impoint with an interactive syntax, the pointer changes to a cross hairs when over the image. Click and drag the mouse to specify the position of the point. The point supports a context menu that you can use to control aspects of its appearance and behavior.

Blue point displayed over an image, with a context menu that gives options to copy the position, set the color, or delete the point.

The table describes the interactive behavior supported by impoint.

Interactive BehaviorDescription
Moving the point.Move the mouse pointer over the point. The mouse pointer changes to a fleur shape . Click and drag the mouse to move the point.
Changing the color used to display the point. Move the mouse pointer over the point. Right-click and select Set Color from the context menu and specify the color you want to use.
Retrieving the coordinates of the point.Move the mouse pointer over the point. Right-click and select Copy Position from the context menu to copy a 1-by-2 array to the clipboard specifying the coordinates of the point [X Y].
Deleting the pointMove the pointer on top of the point. Right-click and select Delete from the context menu. To remove this option from the context menu, set the Deletable property to false: h = impoint(); h.Deletable = false;

Object Functions

Each impoint object supports a number of functions. Type methods impoint to see a complete list.

addNewPositionCallbackAdd new-position callback to ROI object
createMask(Not recommended) Create mask within image
deleteDelete handle object
getColorGet color used to draw ROI object
getPositionReturn current position of ROI object
getPositionConstraintFcnReturn function handle to current position constraint function
removeNewPositionCallbackRemove new-position callback from ROI object
resume(Not recommended) Resume execution of MATLAB command line
setColor(Not recommended) Set color used to draw ROI object
setConstrainedPositionSet ROI object to new position
setPosition(Not recommended) Move ROI object to new position
setPositionConstraintFcnSet position constraint function of ROI object
setStringSet text label for point ROI object
wait(Not recommended) Block MATLAB command line until ROI creation is finished


collapse all

Use impoint functions to set custom color, set a label, enforce a boundary constraint, and update position in title as point moves.

h = impoint(gca,100,200);

Update the title with the new position by using addNewPositionCallback.

addNewPositionCallback(h,@(h) title(sprintf('(%1.0f,%1.0f)',h(1),h(2))));

Construct a boundary constraint function by using makeConstrainToRectFcn.

fcn = makeConstrainToRectFcn("impoint",get(gca,"XLim"),get(gca,"YLim"));

Enforce the boundary constraint function using setPositionConstraintFcn.

setString(h,"Point label");

Interactively place a point. Use wait to block the MATLAB® command line. Double-click on the point to resume execution of the MATLAB command line

h = impoint(gca,[]);
position = wait(h);


If you use impoint with an axes that contains an image object, and do not specify a drag constraint function, then users can drag the point outside the extent of the image and lose the point. When used with an axes created by the plot function, the axes limits automatically expand to accommodate the movement of the point.

Version History

Introduced before R2006a

collapse all

R2018b: impoint is not recommended

Starting in R2018b, a new set of ROI objects replaces the existing set of ROI objects. The new objects provide more functional capabilities, such as face color transparency. The new classes also support events that you can use to respond to changes in your ROI such as moving or being clicked. Although there are no plans to remove the old ROI objects at this time, switch to the new ROIs to take advantage of the additional capabilities and flexibility. For more information on creating ROIs using the new ROI functions, see Create ROI Shapes.

Replace use of the impoint ROI object with the new Point ROI object. You can also use the ROI creation convenience function drawpoint.

Update ROI Creation Code

Update all instances of impoint.

Discouraged UsageRecommended Replacement

This example creates a point ROI.

h = impoint(gca,[25 50]);

Here is equivalent code, replacing the old ROI object with the new ROI object. This example uses the ROI creation convenience function. Note that you must specify the size and position information as a name-value argument.

h = drawpoint(gca,"Position",[25 50]);
Other ROI Code Updates

Update code that uses any of the object functions of the impoint ROI object. In many cases, you can replace the call to an impoint object function by simply accessing or setting the value of a Point ROI object property. For example, replace calls to getColor or setColor with use of the Color property. In some cases, you must replace the impoint object function with an object function of the new Point ROI. Each of the individual impoint ROI object functions include information about migrating to the new Point ROI object. For a migration overview, see ROI Migration.