получить положение пикселя с увеличением в Matlab - PullRequest
1 голос
/ 17 сентября 2011

У меня есть несколько 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 Ответ

1 голос
/ 17 сентября 2011

Вы можете использовать комбинацию данных , чистящих и данных , связывающих с в интерактивном режиме , пометить точек и удалить их из графика рассеяния.

Пример:

%# 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')

Теперь вы можете использовать инструмент «Кисть» для выбора точек данных, перетаскивая прямоугольник выделения, щелкните правой кнопкой мыши и выберите «Удалить». Поскольку мы связали данные, извлеченные с фактическими переменными, удаленные точки также будут отражены в переменных x и y.

Обратите внимание, что вы всегда можете использовать инструмент масштабирования для увеличения определенной области, а затем переключиться на кисть для выделения ...

brush_select brush_remove

После удаления точек, как показано выше, мы можем проверить переменные:

>> whos x y
  Name       Size            Bytes  Class     Attributes

  x         86x1               688  double              
  y         86x1               688  double       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...