Алгоритм измерения евклидова расстояния между пикселями изображения


У меня есть несколько изображений, где я знаю фокусное расстояние, количество пикселей, Размеры и положение (по GPS). Они все в высоком наклонном порядке, снятые на земле с помощью коммерчески доступных камер.

Alt текст http://desmond.yfrog.com/Himg411/scaled.php?tn=0&server=411&filename=mjbm.jpg&xsize=640&ysize=640

Каков наилучший метод вычисления евклидовых расстояний между определенными пикселями в изображении? Если это действительно возможно.

1 4

1 ответ:

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

Обычно наша графическая задача состоит в том, чтобы спроецировать 3D-модель в 2D, чтобы мы могли визуализировать изображение. Хотя большинство программ в настоящее время используют API (например, OpenGL) для этого уравнения не особенно сложны или трудны для понимания. Я написал свой первый код, используя примеры из 3D Graphics в Pascal , который является хорошим ясным трактатом, но будет много других подобных источников (хотя, вероятно, меньше в настоящее время, поскольку аппаратный API неизменно используется).

Что полезно в этом, так это то, что уравнения проекции коммутативны, в том смысле, что если у вас есть точка на изображении и модель вы можете запустить данные обратно через проекцию, чтобы получить исходные 3D координаты - что вы и хотите сделать.

Итак, несколько подходов предлагают: либо написать код, чтобы сделать это непосредственно, либо, возможно, более просто использовать OpenGL (я бы рекомендовал GLUT toolkit для этого). Если ваша математика хороша и манипулирование матрицами не вызывает у вас никаких проблем, то я бы рекомендовал первое, так как решение будет более жестким и интересным - в противном случае возьмите Подход OpenGL. Вы, вероятно, захотите превратить приближение камеры / плоскости в камеру/сферу довольно рано.

Если этого недостаточно для ваших нужд, то теоретически можно перейти к фактическому моделированию ландшафта. ДанныеSRTM находятся в свободном доступе (хотя и не в самой дружественной форме), поэтому в сочетании с вашим положением GPS можно создать сетчатую модель, в которой вы применяете те же алгоритмы, что и выше.