C# 计算图像中的对象大小

C# 计算图像中的对象大小,c#,math,imaging,C#,Math,Imaging,我有一个73º对角视场的相机和一个1/4'的传感器,能够进行1280*720的拍摄 我和某个物体有固定的距离,我想在相机拍摄的照片上测量它 我想试着在给定一定距离和视角的情况下,通过像素得到厘米的数量。。。我不知道这样做是否正确 有人能告诉我正确的方法和/或解释如何完成 非常感谢好的,我想我已经为你弄明白了- Tan 45 = 1 // this is important sqareroot(1280squared + 720squared) = 1468.6 // this

我有一个73º对角视场的相机和一个1/4'的传感器,能够进行1280*720的拍摄

我和某个物体有固定的距离,我想在相机拍摄的照片上测量它

我想试着在给定一定距离和视角的情况下,通过像素得到厘米的数量。。。我不知道这样做是否正确

有人能告诉我正确的方法和/或解释如何完成


非常感谢

好的,我想我已经为你弄明白了-

Tan 45 = 1    
// this is important


sqareroot(1280squared + 720squared) = 1468.6    
// this is the diagonal measured in pixels widths


73/2 = 36.5    
// this is half the diagonal view angle.


1468.6/2 = 734.3

Tan 36.5 = 0.73996

734.3 / 0.73996 = 992.3509  
// this is the amount of pixels you would need 
// to see 45 degrees from the center of the frame.
所以要测量你的物体,你需要-

((pixelDimensionOfObject / 2) / 992.3509) * distance from object = size of object.

但是要注意,我认为为了使这是正确的,你拍摄和测量的物体必须在画面的中心。否则,我认为它会变得复杂得多。

我认为这可以通过另一种方式工作,我们想知道物体的距离,我们想知道物体的真实大小。

发布你的代码。到目前为止,你尝试了什么听起来像基本的三角。忽略镜头的变焦能力。我明天会测试它,似乎是正确的。。。是的,为了测量物体,它应该靠近图像的中心,否则我不会用距离传感器检测到它;)进展如何?你得到结果了吗?