通过放大matlab获取像素位置

时间:2011-09-17 13:43:13

标签: matlab graphics plot

我的图像/人物上有一些2D点。

我使用此功能

im_data= rand(100,2);
scatter(im_data(:,1),im_data(:,2),'r*')
[x,y,button] = ginput()
im_data(x,y)=[];

我想通过放大/放大来删除[x,y]以避免删除正确的点。 有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以将数据brushing和数据linking组合使用到interactively mark点,并将其从散点图中删除。

示例:

%# random data
x = rand(100,1);
y = rand(100,1);

%# scatter plot
hFig = figure;
scatter(x, y, 50, 'r', 'filled')

%# turn on brushing and linking
hBrush = brush(hFig); set(hBrush, 'Enable','on', 'Color','g')
linkdata(hFig, 'on')

现在,您可以使用画笔工具通过拖动选择矩形来选择数据点,右键单击,然后选择删除。由于我们将绘制的数据与实际变量相关联,因此删除的点也会反映在xy变量中。

请注意,您始终可以使用缩放工具放大特定区域,然后切换到画笔以供选择...

brush_select brush_remove

删除如上所示的点后,我们可以检查变量:

>> whos x y
  Name       Size            Bytes  Class     Attributes

  x         86x1               688  double              
  y         86x1               688  double