2016-03-01 3 views
-1

Я хочу получить некоторое местоположение (x, y) и соответствующее значение пикселя после щелчка на изображении (из нескольких изображений) и сохранить его в массиве. Любые идеи, как я могу достичь этого в Matlab? Например, я нажимаю на 231,23 (X, Y) координаты и имеет значение пикселя и изображение равно 1.jpg. мои первые три элемента массива будет 231, 23, 123, 1Как получить значение пикселя координаты пикселя и местоположение из изображения в Matlab?

+0

См: [кнопка вниз обратного вызова] (http://www.mathworks.com/help/matlab/creating_plots/button-down-callback -function.html) – excaza

ответ

1

Вы можете использовать либо ginput или указать ButtonDownFcn

Следующие запишет точки, пока не нажать кнопку ввода.

fig = figure(); 
img = rand(50); 

imshow(img) 

[x,y] = ginput(); 

% Get the pixel values 
data = img(sub2ind(size(img), round(y), round(x))); 

Ниже приведен пример с использованием обратного вызова ButtonDownFcn

fig = figure(); 
img = rand(50); 

hax = axes('Parent', fig); 
him = imshow(img, 'Parent', hax); 

% Specify the callback function 
set(him, 'ButtonDownFcn', @(s,e)buttonDown(hax, img)) 

function buttonDown(hax, img) 
    % Get the location of the current mouse click 
    currentPoint = get(hax, 'CurrentPoint'); 
    currentPoint = round(currentPoint(1,1:2)); 

    % Retrieve the pixel value at this point 
    data = img(sub2ind(size(img), currentPoint(2), currentPoint(1))); 

    % Print the data to the command window. 
    fprintf('x: %0.2f, y: %0.2f, pixel: %0.2f\n', ... 
      currentPoint(1), currentPoint(2), data); 
end 
Смежные вопросы