Пиксельное расположение через MATLAB - PullRequest
4 голосов
/ 09 марта 2011

Я работаю над проектом, в котором мне нужно найти определенный объект на платформе с помощью подключенной камеры через MATLAB .Я думал об использовании платформы в качестве сетки, но мне сказали, что, используя пиксели камеры, я мог бы точно получить эту позицию, нажав на окно / экран камеры и выбрав определенный пиксель (где объектыбудут отображаться в окне / экране камеры).

Есть ли способ рассчитать местоположение объекта (пиксель, на который нажали), или есть ли какой-нибудь возможный способ сделать это?

1 Ответ

6 голосов
/ 15 марта 2011

Попробуйте использовать функцию ginput (...) в MATLAB, например:

% Load some image:
data = imread('fishy 01.jpg');

% display the image:
figure(88);
clf;
h = imagesc(data);
axis image

% Get a value from the screen:
[x, y] = ginput(1);

msgbox(['You want pixel: ' num2str(round([x,y]))]);

Это даст вам местоположение пикселя на текущей оси.В качестве альтернативы вы можете использовать обратный вызов фигуры WindowButtonUpFcn , чтобы получить текущую позицию мыши на фигуре, затем перевести ее на нужную ось, а затем масштабировать до текущей оси xlim и ylim.Но ginput (1) будет намного проще.

Example Run

...