Создание полуразрешения изображение, на которое геоссылаются,

В этом примере показано, как создать версию полуразрешения изображения TIFF, на которое геоссылаются, с помощью объектов привязки, и Image Processing Toolbox™ функционирует ind2gray и imresize.

Шаг 1: импортируйте изображение TIFF, на которое геоссылаются,

Считайте изображение TIFF индексированного цвета и преобразуйте его в шкалу полутонов. Размер изображения 2000 2000.

[X, cmap] = imread('concord_ortho_w.tif');
I_orig = ind2gray(X, cmap);

Считайте соответствующий файл привязки. Каждый пиксель изображения покрывает однометровый квадрат на карте.

R_orig = worldfileread('concord_ortho_w.tfw','planar',size(X));

Выберите удобный формат для того, чтобы отобразить результат.

currentFormat = get(0,'format');
format short g
R_orig
R_orig = 
  MapCellsReference with properties:

            XWorldLimits: [207000 209000]
            YWorldLimits: [911000 913000]
              RasterSize: [2000 2000]
    RasterInterpretation: 'cells'
        ColumnsStartFrom: 'north'
           RowsStartFrom: 'west'
      CellExtentInWorldX: 1
      CellExtentInWorldY: 1
    RasterExtentInWorldX: 2000
    RasterExtentInWorldY: 2000
        XIntrinsicLimits: [0.5 2000.5]
        YIntrinsicLimits: [0.5 2000.5]
      TransformationType: 'rectilinear'
    CoordinateSystemType: 'planar'


Шаг 2: измените размер изображения к половине его первоначального размера

Разделите на два разрешение, создав меньшее изображение (1000 на 1000).

I_half = imresize(I_orig, size(I_orig)/2, 'bicubic');

Шаг 3: создайте объект привязки для измененного изображения

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

R_half = R_orig;
R_half.RasterSize = size(I_half)
R_half = 
  MapCellsReference with properties:

            XWorldLimits: [207000 209000]
            YWorldLimits: [911000 913000]
              RasterSize: [1000 1000]
    RasterInterpretation: 'cells'
        ColumnsStartFrom: 'north'
           RowsStartFrom: 'west'
      CellExtentInWorldX: 2
      CellExtentInWorldY: 2
    RasterExtentInWorldX: 2000
    RasterExtentInWorldY: 2000
        XIntrinsicLimits: [0.5 1000.5]
        YIntrinsicLimits: [0.5 1000.5]
      TransformationType: 'rectilinear'
    CoordinateSystemType: 'planar'


Шаг 4: визуализируйте результаты

Отобразите каждое изображение в координатах карты и отметьте контрольную точку красным + в обеих фигурах.

xlimits = [208000 208250];
ylimits = [911800 911950];

x = 208202.21;
y = 911862.70;

figure
mapshow(I_orig,R_orig)
hold on
plot(x,y,'r+')
xlim(xlimits)
ylim(ylimits)
ax = gca;
ax.TickDir = 'out';

figure
mapshow(I_half,R_half)
hold on
plot(x,y,'r+')
xlim(xlimits)
ylim(ylimits)
ax = gca;
ax.TickDir = 'out';

Графически, они совпадают, даже при том, что то же местоположение карты соответствует двум другим местам во внутренних координатах.

[xIntrinsic1, yIntrinsic1] = worldToIntrinsic(R_orig, x, y)
xIntrinsic1 = 
       1202.7

yIntrinsic1 = 
       1137.8

[xIntrinsic2, yIntrinsic2] = worldToIntrinsic(R_half, x, y)
xIntrinsic2 = 
        601.6

yIntrinsic2 = 
       569.15

format(currentFormat);

Информация о наборе данных

concord_ortho_w.tif и concord_ortho_w.tfw файлы выведены с помощью ортофото мозаик из Бюро Географической информации (MassGIS), Массачусетс, Исполнительного Office Технологии и Служб безопасности. Для получения дополнительной информации о наборах данных, используйте команду type concord_ortho.txt. Для обновленной ссылки на данные, обеспеченные MassGIS, см. https://www.mass.gov/service-details/massgis-data-layers.

Смотрите также

| | | |