2011-09-17 94 views
1

我在图像/图上有一些2D点。在matlab中获取像素位置

我用这个功能

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

我想通过简单的放大/放大,以避免删除正确的要删除的点[X,Y]。 有什么帮助吗?

回答

1

您可以使用数据组合brushing和数据linkinginteractivelymark点并将它们从您的散点图中删除。

例子:

%# 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  
+0

你能回答我的另一个问题,标题为'IMCROP,放大,matlab'。 imcrop是一样的缩放问题。 – Shahgee