Как измерить ширину объекта, если расстояние от камеры (откалиброванной) до моего объекта фиксировано?Python

Программы на Python
Anonymous
Как измерить ширину объекта, если расстояние от камеры (откалиброванной) до моего объекта фиксировано?

Сообщение Anonymous »

Прошу прощения, я совершенно новичок в программировании. Начнем с того, что для целей этого проекта я использую библиотеку привязок Python к OpenCV.

Моя камера откалибрована для отображения искажений типа «рыбий глаз». Я получил следующие значения для K и D, собственной матрицы камеры и матрицы искажений соответственно:

Код: Выделить всё

K = [[438.76709 0.00000 338.13894]
[0.00000 440.79169 246.80081]
[0.00000 0.00000 1.00000]]

D = [-0.098034379506 0.054022224927 -0.046172648829 -0.009039512970]

Focal length: 2.8mm
Field of view: 145 degrees (from manual)
Когда я не искажаю изображение и показываю его, я получаю изображение с черными пикселями в областях, которые были растянуты слишком сильно (ожидалось). Однако это не мешает вычислению ширины объекта, так как объект невелик и занимает 20% изображения.

Я буду размещать объект в 10 см от объектива камеры. Основываясь на том, что я прочитал о модели камеры с точечным отверстием, мне потребуются внешние параметры, управляющие преобразованием 3D в 2D. Однако я не уверен, как мне это получить.

Предполагая, что у меня есть пиксельные координаты двух точек (каждая по краям, между которыми я хотел бы измерить расстояние), как мне найти реальное расстояние между этими двумя точками, используя эти производные матрицы?

Кроме того, если мой прямоугольный объект не параллелен главной оси камеры, существует ли алгоритм для расчета ширины даже с такой условия?

Вернуться в «Python»