turningdist

Вычисление расстояния поворота между polyshape объекты

Описание

td = turningdist(poly1,poly2) возвращает массив поворотных расстояний между соответствующими парами элементов из двух polyshape массивы с совместимыми размерами. Расстояние поворота между двумя polyshape объекты являются мерой соответствия их форм, независимо от поворота или масштабирования. Расстояние поворота, близкое к 0, указывает на близкое совпадение. Чем больше значение, тем больше различаются две формы.

TD(i,j) - расстояние поворота между i-м polyshape в poly1 и j-й polyshape в poly2.

пример

td = turningdist(polyvec) возвращает матрицу поворотных расстояний между парами элементов вектора polyshape объекты.

Примеры

свернуть все

Создайте и постройте график двух квадратов разных размеров и местоположений, представленных как polyshape объекты poly1 и poly2.

poly1 = nsidedpoly(4,'SideLength',1);
poly2 = nsidedpoly(4,'SideLength',3,'Center',[3 3]);
plot(poly1)
hold on 
plot(poly2)
axis equal
hold off

Figure contains an axes. The axes contains 2 objects of type polygon.

Поскольку два квадрата имеют одинаковую форму, несмотря на их масштабирование, их расстояние поворота равняется 0.

td = turningdist(poly1,poly2)
td = 0

Создайте и постройте график третьего polyshape, и сравните его расстояние поворота с poly1. Поскольку их формы имеют больше различий, чем poly1 и poly2, расстояние поворота больше.

poly3 = nsidedpoly(20,'Center',[3 3]);
plot(poly1)
hold on
plot(poly3)
axis equal
hold off

Figure contains an axes. The axes contains 2 objects of type polygon.

td = turningdist(poly1,poly3)
td = 0.4443

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

свернуть все

Первый входной polyshape, заданный как скалярный, векторный, матричный или многомерный массив.

Второй входной polyshape, заданный как скалярный, векторный, матричный или многомерный массив.

polyshape вектор.

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

свернуть все

Расстояние поворота, возвращаемое как скалярный, векторный, матричный или многомерный массив, элементы которого больше или равны 0.

  • Если вы вводите два polyshape аргументы, тогда они должны иметь совместимые размеры. Для примера, если два входных polyshape векторы имеют различные длины M и N, тогда они должны иметь различные ориентации (один должен быть вектором-строкой, а другой должен быть вектором-столбцом). td M -by - N или N -by - M в зависимости от ориентации каждого входного вектора. Для получения дополнительной информации о совместимых размерах массивов см. «Совместимые размеры массивов для основных операций».

  • Если вы вводите одну polyshape вектор с N длины, затем td N -by - N.

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

Ссылки

[1] Arkin, E.M., Chew, L.P., Huttenlocher, D.P., Kedem, K., and Mitchell, J.S.B. «Эффективно вычисляемая метрика для сравнения полигональных форм». Транзакции IEEE по шаблонному анализу и машинному анализу. Том 13, № 3, 1991, стр. 209-16. doi: 10.1109/34.75509.

См. также

Введенный в R2018a