2011-09-17 88 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