Измерение расстояния между объектами по фотографии, преобразование перспективы

У меня есть два вопроса, которые могут быть связаны:

1.) Я хотел бы оценить расстояния между объектами, расположенными в одной плоскости, по фотографии. Геометрическая форма одного объекта на фотографии прямоугольная и его размеры известны, но нет информации о фотографии (фокусное расстояние камеры, угол обзора, размер сенсора и т.д.). Например, допустим у меня есть следующая фотография платы и размеры прямоугольной микросхемы известны как 20х10мм, все объекты лежат в плоскости. Можно ли вообще оценить расстояния (вид сверху) между другими компонентами печатной платы?

Фото платы

В этом конкретном случае допустима максимальная погрешность расстояния 2-3 мм.

2.) Допустим, у меня есть фотография печатной платы, похожая на приведенную выше, где у меня есть один элемент (объект), о котором я знаю, что он имеет прямоугольную форму. Я хотел бы преобразовать перспективу изображения, чтобы объект выглядел прямоугольным. Я пробовал imageJ (Fiji) и Interactive Perspective Plugin для этой задачи. Сначала я отображаю прямоугольную сетку поверх изображения, а затем вручную трансформирую изображение с помощью плагина, пока объект не станет прямоугольным. Но для некоторых ракурсов я считаю невозможным вручную настроить контрольные точки, чтобы получить прямоугольную форму объекта. Кто-нибудь знает альтернативный подход с использованием imageJ (Фиджи) или Octave? Решение на питоне тоже подойдет, хотя у меня нет большого опыта работы с питоном (только недавно установил Anaconda со Spyder).


person miquo    schedule 30.06.2016    source источник
comment
см. Какой наилучший способ оценить меру сфотографированных вещей? и связанный вопрос внизу. Вы можете использовать коннекторы в качестве эталона.   -  person Spektre    schedule 01.07.2016


Ответы (1)


Несколько лет назад я создал программу, которая кажется вам подходящей. Он исправляет перспективу, превращая четырехугольник в прямоугольник.

Вот результат:
Материнская плата в виде прямоугольника,
где можно измерять расстояния.

person Raymond    schedule 11.07.2016