C# 计算图像中的对象大小
我有一个73º对角视场的相机和一个1/4'的传感器,能够进行1280*720的拍摄 我和某个物体有固定的距离,我想在相机拍摄的照片上测量它 我想试着在给定一定距离和视角的情况下,通过像素得到厘米的数量。。。我不知道这样做是否正确 有人能告诉我正确的方法和/或解释如何完成C# 计算图像中的对象大小,c#,math,imaging,C#,Math,Imaging,我有一个73º对角视场的相机和一个1/4'的传感器,能够进行1280*720的拍摄 我和某个物体有固定的距离,我想在相机拍摄的照片上测量它 我想试着在给定一定距离和视角的情况下,通过像素得到厘米的数量。。。我不知道这样做是否正确 有人能告诉我正确的方法和/或解释如何完成 非常感谢好的,我想我已经为你弄明白了- Tan 45 = 1 // this is important sqareroot(1280squared + 720squared) = 1468.6 // this
非常感谢好的,我想我已经为你弄明白了-
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.
但是要注意,我认为为了使这是正确的,你拍摄和测量的物体必须在画面的中心。否则,我认为它会变得复杂得多。我认为这可以通过另一种方式工作,我们想知道物体的距离,我们想知道物体的真实大小。发布你的代码。到目前为止,你尝试了什么听起来像基本的三角。忽略镜头的变焦能力。我明天会测试它,似乎是正确的。。。是的,为了测量物体,它应该靠近图像的中心,否则我不会用距离传感器检测到它;)进展如何?你得到结果了吗?