Вычислить контур изображения с географической привязкой или сетки данных
[x,y] = mapoutline(R,height,width)
[x,y] = mapoutline(R, sizea)
[x,y] = mapoutline(info)
[x,y] = mapoutline(...,'close')
[lon,lat] = mapoutline(R,...)
outline = mapoutline(...)
[x,y] = mapoutline(R,height,width) вычисляет контур изображения с географической привязкой или обычный набор данных с сеткой в координатах карты. R является либо ссылочной матрицей 3 на 2, определяющей двухмерное аффинное преобразование из собственных координат пикселя в координаты карты, либо MapCellsReference или MapPostingsReference объект. height и width - размеры изображения. x и y представляют собой векторы столбцов 4 на 1, содержащие координаты карты внешних углов угловых пикселей, в следующем порядке:
(1,1), (height,1), (height, width), (1, width).
[x,y] = mapoutline(R, sizea) принимает sizea = [height, width, ...] вместо height и width.
[x,y] = mapoutline(info) принимает массив скалярной структуры с полями
| матрица ссылок 3 на 2 |
| Скалярное число |
| Скалярное число |
[x,y] = mapoutline(...,'close') прибыль x и y в виде векторов 5 на 1, добавляя координаты первого из четырех углов к концу.
[lon,lat] = mapoutline(R,...), где R географические привязки пикселов к долготе и широте, а не координаты карты, возвращает контур в географических координатах. Долгота должна предшествовать широте в списке выходных аргументов.
outline = mapoutline(...) возвращает угловые координаты в массиве 4 на 2 или 5 на 2.
Нарисуйте красный контур, определяющий изображение Boston GeoTIFF, которое ссылается на систему координат плоскости материкового штата Массачусетс с единицами съемочных футов.
figure
info = georasterinfo('boston.tif');
R = info.RasterReference;
[x,y] = mapoutline(R,R.RasterSize,'close');
hold on
plot(x,y,'r')
xlabel('MA Mainland State Plane easting, survey feet')
ylabel('MA Mainland State Plane northing, survey feet')info = imfinfo('concord_ortho_w.tif');
R = worldfileread('concord_ortho_w.tfw','planar', ...
[info.Height info.Width]);
[x,y] = mapoutline(R, info.Height, info.Width, 'close');
x = x * unitsratio('sf','meter');
y = y * unitsratio('sf','meter');
plot(x,y,'k')