exponenta event banner

axes2pix

Преобразование координат осей в координаты пикселей

Описание

пример

pixelCoord = axes2pix(n,extent,axesCoord) преобразует координату осей в внутреннюю координату («пиксель»).

Примечание

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

Примеры

свернуть все

Отображение изображения.

h = imshow('pout.tif');

Figure contains an axes. The axes contains an object of type image.

Получение размера изображения.

[nrows,ncols] = size(get(h,'CData'));

Получить изображение XData и YData.

xdata = get(h,'XData')
xdata = 1×2

     1   240

ydata = get(h,'YData')
ydata = 1×2

     1   291

Преобразуйте координату осей в внутреннюю координату для размеров x и y.

px = axes2pix(ncols,xdata,30)
px = 30
py = axes2pix(nrows,ydata,30)
py = 30

Прочтите изображение и отобразите его. Получение размера изображения.

I = imread('pout.tif');
[nrows,ncols] = size(I)
nrows = 291
ncols = 240

Создайте объект пространственной ссылки для этого изображения с настройками свойств по умолчанию. По умолчанию верхний левый угол изображения имеет внутреннюю координату (1,1).

RI = imref2d(size(I));
h = imshow(I,RI);

Figure contains an axes. The axes contains an object of type image.

xData = get(h,'XData')
xData = 1×2

     1   240

yData = get(h,'YData')
yData = 1×2

     1   291

В иллюстративных целях укажите произвольную протяженность изображения в направлениях x и y. В этом примере изображение сдвигается вверх на 20 пикселей и вправо на 400 пикселей. В примере изображение также смещается вправо на 100 пикселей и сжимается горизонтально в 2 раза.

xWorldLimits = 0.5*xData + 400;
yWorldLimits = yData - 20;
RA = imref2d(size(I),xWorldLimits,yWorldLimits); 
imshow(I,RA)

Figure contains an axes. The axes contains an object of type image.

Выберите пиксель, например пиксель рядом с носом нижестоящего элемента. Этот пиксель находится вокруг координат осей (x, y) = (450, 90) в измененном изображении.

Преобразование координат осей в внутреннюю координату.

px = axes2pix(ncols,xWorldLimits,450)
px = 100
py = axes2pix(nrows,yWorldLimits,90)
py = 110

Внутренняя координата точки равна (100, 110). Это согласуется с расположением носа на исходном изображении.

Входные аргументы

свернуть все

Число строк или столбцов изображения, указанное как положительное целое число. n - количество столбцов изображения для координаты X или число строк изображения для координаты Y.

Область мира изображения, заданная как 2-элементный числовой вектор. extent возвращается get(image_handle,'XData') или get(image_handle,'YData').

Координата осей для преобразования в внутренние координаты, заданная как числовой вектор.

Выходные аргументы

свернуть все

Внутренние координаты, возвращаемые в виде числового вектора.

Типы данных: double

Совет

  • axes2pix выполняет минимальную проверку достоверности n, axesCoord, или extent аргументы. Например, axes2pix может экстраполировать из extent для возврата отрицательной координаты. Функция, вызывающая axes2pix несет ответственность за проверку ошибок.

Представлен до R2006a