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)

Входные параметры

свернуть все

Вход изображение, которое будет выровнено, задается как полутоновый, truecolor или бинарное изображение, или вектор символов или строка, которая задает имя файла изображения этих типов.

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

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

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

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

Truecolor

uint8, uint16, single, или double

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

logical

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

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

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

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

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

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 -на 2. Эти два столбца представляют x - и y - координаты управляющих точек, соответственно, в внутренней системе координат изображения.

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

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

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

Совет

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

Алгоритмы

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

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

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

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

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

    Нерефлективное подобие

    2

    Аффинно

    3

    Проективный

    4

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

  4. Отобразите предсказанную точку.

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