Это зависит от того, что вы пытаетесь сделать.
Вы упоминаете, что хотите измерить высоту книжных полок. Если вы можете считать, что близкая область книжной полки «короче», чем высота конца книжной полки в конце строки, все, что вам нужно, - это измерить расстояние. Выберите единицу измерения «пикселей», а затем измерьте расстояние с помощью теоремы Пифагора. (x ^ 2 + y ^ 2 = z ^ 2)
То, что вы, вероятно, действительно ищете, это чтобы высота ближайшего книжного шкафа была равна высоте дальнего книжного шкафа. В этом случае вы должны иметь больше информации. Вы должны выполнить 2D-> 3D-преобразование: у вас есть 2D-изображение, и вам нужно восстановить 3D-изображение из этого изображения. В этот момент вам нужна третья часть информации, так как вам нужно 3 переменные (X, y, z) из 2 переменных.
Вы определенно можете сделать это с OpenCV, если вы правильно откалибруете систему и у вас есть вторая контрольная точка (например, лазерная линия). Это называется подходом структурированного освещения - см. эту ссылку для получения дополнительной информации или Google "структурированное освещение машинного зрения"