Laz*_*Laz 20 image-processing computer-vision photogrammetry
这不完全是一个编程问题.我只是想知道你的方法对于数字图像处理中的常见问题.
假设您有jpg格式的几棵树的图像.你会如何找到这些树木的高度?照片是您唯一的输入.
我想知道你没有编码的方法.因此,如果您的答案含糊不清或非DIP-ish无关紧要.
小修正:高度不必是树的实际高度.高度可以达到任何比例.但应该与pic中的所有对象保持一致.
小智 5
使用摄影测量从图像中找到物体的大小很简单。摄影测量是根据照片进行测量的科学。为此我们需要知道两件事,
以下是步骤:
校准相机
使用openCV对相机进行标定。可以使用OpenCV calibrate.py工具和源码中提供的棋盘图案PNG生成标定矩阵。进行相机标定以找到相机参数。我用网络摄像头从多个角度拍摄了大约十几张棋盘照片(以校准我的网络摄像头)。有关更多详细信息,请查看openCV 相机校准。
我们将从校准矩阵中得到f_x,f_y,c_x,c_y。
检查您拍摄的照片的详细信息,您将找到照片的原始分辨率(高度X宽度),并且在其EXIF标题中您可以找到焦距值(f)。这些项目可能会因您的相机而异。
每毫米像素数
我们需要知道图像传感器上每毫米的像素数 (px/mm)。
f_x=f*m_x
f_y=f*m_y
由于每个公式都有两个变量,因此我们可以求解 m_x 和 m_y。我只是对 f_x 和 f_y 进行平均以获得 f_xy。
m=f_xy/相机焦距
插入图像
插入您需要从中查找图像实际尺寸的图像。您应该知道物体和相机之间的距离。求图像的尺寸(高1X宽1)
查找对象大小(以像素为单位)
确定对象的大小(以像素为单位)。我只是使用距离公式来查找所选线的长度。您可以采用任何其他方法。
以较低分辨率转换 px/mm
pxpermm_in_lower_resolution = (width1*m)/宽度
图像传感器中物体的尺寸
图像传感器中对象的大小 = 像素中对象大小/(较低分辨率中的 pxpermm_)
物体的实际尺寸
根据以上数据可以求出物体的实际尺寸:
real_size = (dist*size_of_object_in_image_sensor)/focal_length