cpselect

Инструмент Control Point Selection

Описание

пример

cpselect(moving,fixed) запускает инструмент Control Point Selection, который позволяет вам выбрать контрольные точки в двух связанных изображениях. moving изображение должно быть деформировано, который приносит его в систему координат fixed изображение.

Когда инструмент Control Point Selection открыт, можно добавить, переместить и удалить контрольные точки в интерактивном режиме с мышью. Когда вы закончите изменяя контрольные точки, экспортируйте их в рабочую область путем выбора Export Points to Workspace из меню File. Инструмент может возвратить координаты допустимых выбранных пар перемещения и зафиксированных контрольных точек в двух числовых векторах. Инструмент может также возвратить все выбранные контрольные точки и информацию об индексации в cpstruct структура, которая сохраняет состояние инструмента так, чтобы можно было перезапустить инструмент позже. Для получения дополнительной информации об использовании инструмента см. Процедуру отбора Контрольной точки.

пример

cpselect(moving,fixed,initialMovingPoints,initialFixedPoints) начинает инструмент Control Point Selection с начального набора допустимого перемещения и зафиксированных пар контрольной точки, initialMovingPoints и initialFixedPoints.

cpselect(moving,fixed,cpstruct_in) начинает инструмент Control Point Selection с начального набора контрольных точек и информации об индексации, которые хранятся в cpstruct_in. Используйте этот синтаксис, чтобы перезапустить инструмент Control Point Selection от ранее сохраненного состояния.

h = cpselect(___) возвращает указатель h к инструменту Control Point Selection. Можно использовать close(h) команда, чтобы закрыть инструмент из командной строки.

h = cpselect(___,'Wait',false) возвращает указатель h к инструменту Control Point Selection. Можно использовать 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];

Откройте инструмент Control Point Selection, задав выборку зафиксированные и движущиеся изображения и два набора сохраненных контрольных точек. Можно теперь продолжить добавлять, перемещать и удалять контрольные точки в интерактивном режиме с мышью. Когда вы закончите изменяя контрольные точки, экспортируйте их в рабочую область путем выбора Export Points to Workspace из меню File.

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

Закройте инструмент Control Point Selection программно при помощи close функция.

close(h)

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

свернуть все

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

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

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

Шкала полутонов

uint8uint16int16единственный, или double

Истинный цвет

uint8uint16единственный, или double

Двоичный файл

logical

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

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

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

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

Шкала полутонов

uint8uint16int16единственный, или double

Истинный цвет

uint8uint16единственный, или double

Двоичный файл

logical

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

Предварительно выобранные контрольные точки в виде cpstruct структура. cpstruct_in содержит информацию о x - и y - координаты всех контрольных точек в перемещении и зафиксированных изображениях, включая непарные и предсказанные контрольные точки. cpstruct_in также содержит информацию об индексации, которая позволяет инструменту Control Point Selection восстанавливать состояние контрольных точек.

Создайте cpstruct путем экспорта точек от инструмента Control Point Selection, описанного в Точках Контроля над экспортом к Рабочей области.

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

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

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

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

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

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

свернуть все

Инструмент Control Point Selection, возвращенный как указатель.

Выбранные контрольные точки на движущемся изображении в виде 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