exponenta event banner

cpselect

Инструмент «Выбор контрольной точки»

Описание

пример

cpselect(moving,fixed) запускает инструмент «Выбор контрольной точки», позволяющий выбрать контрольные точки на двух связанных изображениях. moving - деформируемое изображение, которое вводит его в систему координат fixed изображение.

При открытом инструменте «Выбор контрольной точки» можно добавлять, перемещать и удалять контрольные точки в интерактивном режиме с помощью мыши. По завершении изменения управляющих точек экспортируйте их в рабочую область, выбрав пункт Экспортировать точки в рабочую область (Export Points to Workspace) в меню Файл (File). Инструмент может возвращать координаты действительных выбранных пар движущихся и фиксированных управляющих точек в двух числовых векторах. Инструмент также может возвращать все выбранные контрольные точки и информацию об индексировании в cpstruct структура, которая сохраняет состояние инструмента, чтобы его можно было перезапустить позже. Дополнительные сведения об использовании инструмента см. в разделе Процедура выбора контрольных точек.

пример

cpselect(moving,fixed,initialMovingPoints,initialFixedPoints) запускает инструмент «Выбор контрольной точки» с начальным набором допустимых пар движущихся и фиксированных управляющих точек, initialMovingPoints и initialFixedPoints.

cpselect(moving,fixed,cpstruct_in) запускает инструмент «Выбор контрольной точки» с начальным набором управляющих точек и информацией об индексировании, которые хранятся в cpstruct_in. Этот синтаксис используется для перезапуска инструмента «Выбор контрольной точки» из ранее сохраненного состояния.

h = cpselect(___) возвращает дескриптор h к инструменту «Выбор контрольной точки». Вы можете использовать close(h) для закрытия инструмента из командной строки.

h = cpselect(___,'Wait',false) возвращает дескриптор h к инструменту «Выбор контрольной точки». Вы можете использовать close(h) для закрытия инструмента из командной строки. В отличие от настройки 'Wait' как true, этот синтаксис позволяет запускать cpselect одновременно с запуском других программ в MATLAB ®.

[selectedMovingPoints,selectedFixedPoints] = cpselect(___,'Wait',true) принимает управление командной строкой MATLAB до завершения выбора управляющих точек. Завершив выбор контрольных точек, вернитесь в рабочее пространство, закрыв инструмент. cpselect возвращает координаты допустимых выбранных пар движущихся и фиксированных управляющих точек в selectedMovingPoints и selectedFixedPoints.

Примеры

свернуть все

Прочитать изображение westconcordorthophoto.png в рабочую область. Это изображение - ортофото, которое уже зарегистрировано на земле.

fixed = imread('westconcordorthophoto.png');

Прочитать изображение westconcordaerial.png в рабочую область. Это изображение было взято с самолёта и искажено относительно ортофото.

moving = imread('westconcordaerial.png');

Звонить cpselect, указывая имена изображения, которое требуется зарегистрировать, и ссылочное изображение. Теперь можно добавлять, перемещать и удалять управляющие точки в интерактивном режиме с помощью мыши. По завершении добавления контрольных точек экспортируйте их в рабочую область, выбрав пункт Экспортировать точки в рабочую область (Export Points to Workspace) в меню Файл (File).

cpselect('westconcordaerial.png','westconcordorthophoto.png');

Создайте образец ссылочного изображения. Это фиксированное изображение.

I = checkerboard;

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

J = imresize(I,'Scale',[1 1.3]);
moving = imrotate(J,30);

Укажите координаты (x, y) трех соответствующих контрольных точек для фиксированных и движущихся изображений.

fixedPoints = [10.7 30.6; 40.5 50.6; 20.6 10.7];
movingPoints = [21.6 64.2; 71.1 70.3; 28.7 48.3];

Откройте инструмент «Выбор контрольной точки», указав образцы фиксированных и движущихся изображений и два набора сохраненных контрольных точек. Теперь можно продолжить добавление, перемещение и удаление управляющих точек в интерактивном режиме с помощью мыши. По завершении изменения управляющих точек экспортируйте их в рабочую область, выбрав пункт Экспортировать точки в рабочую область (Export Points to Workspace) в меню Файл (File).

h = cpselect(moving,I,movingPoints,fixedPoints);

Закройте инструмент «Выбор контрольной точки» программным способом с помощью команды close функция.

close(h)

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

свернуть все

Вводимое изображение, которое должно быть выровнено, указано как изображение в градациях серого, цветное или двоичное, или вектор символов или строка, задающая имя файла изображения этих типов.

Тип изображения

Поддерживаемые типы данных

Оттенки серого

uint8, uint16, int16, single, или double

Truecolor

uint8, uint16, single, или double

Набор из двух предметов

logical

Типы данных: single | double | int16 | uint8 | uint16 | logical | char | string

Ссылочное изображение, указанное в градациях серого, цветном или двоичном изображении, или вектор символов или строка, задающая имя файла изображения этих типов.

Тип изображения

Поддерживаемые типы данных

Оттенки серого

uint8, uint16, int16, single, или double

Truecolor

uint8, uint16, single, или double

Набор из двух предметов

logical

Типы данных: single | double | int16 | uint8 | uint16 | logical | char | string

Предварительно выбранные контрольные точки, указанные как cpstruct структура. cpstruct_in содержит информацию о координатах x и y всех контрольных точек на движущихся и фиксированных изображениях, включая непарные и прогнозируемые контрольные точки. cpstruct_in также содержит информацию об индексировании, которая позволяет инструменту «Выбор контрольной точки» восстановить состояние контрольных точек.

Создать cpstruct путем экспорта точек из инструмента «Выбор контрольной точки», описанного в разделе «Экспорт контрольных точек в рабочую область».

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

Предварительно выбранные управляющие точки на движущемся изображении, заданные как числовой массив m-by-2. Два столбца представляют координаты x и y контрольных точек.

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

Предварительно выбранные управляющие точки на фиксированном изображении, заданные как числовой массив m-by-2. Два столбца представляют координаты x и y контрольных точек.

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

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

свернуть все

инструмент «Выбор контрольной точки», возвращаемый как маркер перемещения.

Выбранные управляющие точки на движущемся изображении, заданные как цифровой массив p-by-2. Два столбца представляют координаты X и Y управляющих точек соответственно в внутренней системе координат изображения.

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

Выбранные управляющие точки на фиксированном изображении, заданные как цифровой массив p-by-2. Два столбца представляют координаты X и Y управляющих точек соответственно в внутренней системе координат изображения.

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

Совет

  • При звонке cpselect в сценарии укажите 'Wait' вариант как true. 'Wait' причины опциона cpselect блокирование командной строки MATLAB до тех пор, пока не будут выбраны и возвращены контрольные точки. Если вы не используете 'Wait' опция, cpselect немедленно возвращает элемент управления, и сценарий продолжается без выделения времени для выбора контрольной точки. Кроме того, без 'Wait' опция, cpselect не возвращает управляющие точки в качестве возвращаемых значений.

Алгоритмы

cpselect использует следующую общую процедуру для прогнозирования контрольной точки.

  1. Найдите все допустимые пары контрольных точек.

  2. Выведите пространственное преобразование между moving и fixed управляющие точки с использованием метода, который зависит от количества допустимых пар управляющих точек.

    Тип преобразования

    Минимальное количество пар контрольных точек

    Нерефлексивное сходство

    2

    Аффинно

    3

    Проективный

    4

  3. Примените пространственное преобразование к новой точке. Это преобразование генерирует прогнозируемую точку.

  4. Отображение прогнозируемой точки.

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