2013-05-18 1 views
2

У меня есть образ изображения с набором точек и второе испытанное изображение также с набором точек. Я знаю координаты x, y точек. Problem description Точки имеют свои имена (цифры), я знаю числа всех точек в изображении рисунка и в тестируемом образце знаю числа двух точек. Я хочу повернуть проверенное изображение в соответствии с этими двумя известными точками, чтобы соответствовать тестируемому изображению на образце (я не хочу его масштабировать). Затем я хочу рассчитать расстояния точек шаблона до тестируемых точек. Я хочу написать алгоритм в Java, любую идею, как это сделать?Соответствие изображений в соответствии с двумя точками

+0

Есть ли фиксированное отображение точек между двумя наборами точек? Или карта скорректирована непрерывно? –

+0

Из вашей диаграммы неясно, какова цель 1,0. Похоже, вы просто хотите найти самое близкое соответствие для 2,3. Есть ли какая-то функция поворота/масштабирования, которую вы должны определить из очков 0 и 1? – BraveNewCurrency

+1

Возможный дубликат http://stackoverflow.com/questions/7077409/align-one-set-of-2d-points-with-another-using-only-translation-and-rotation –

ответ

1

hava Посмотрите на java.awt.geom.AffineTransform, вы также найдете учебники для этого. кажется, что вы хотите отобразить синюю 0 на красный 0, так что я начал бы переводить обе группы, чтобы их 0 находилось в начале координат. см. AffineTransform.getTranslateInstance.

следующее Я проверил векторы на точки 1 в синей и красной группе. вы можете найти их угол относительно оси x (arctan (y/x)). разница в двух углах - это угол, по которому вы хотите повернуть синюю группу, чтобы точки 1 указывали в одном направлении. см. AffineTransform.getRotateInstance. Соответствующие пары точек кажутся наиболее сложной частью ...