回答:
外部参照や対象までの正確な距離がなければ、推定値を超えることは決してありません。被写体までの距離、FOV(/レンズの長さ)、センサーのサイズを推定できれば、計算するのはそれほど難しくありません。最大の不確実性は、被写体までの距離です。
見つけるために空間解像度を(方法(大広い又は高い画素である)で使用被写体):
(距離*(センサーサイズ/焦点距離))/ピクセル数
センサーのサイズと焦点距離が同じスケールを使用していることを確認してください(両方ともミリメートルまたはインチ単位)。
次に、被写体のピクセル数を数え、それを1ピクセルの空間解像度に掛けます。
私は、レンズの全領域にわたるFOVの線形変化を想定しています。これは100%正確ではありませんが、通常のレンズやより長いレンズでは非常に近くなります。
私のカメラは画像内の焦点距離を保存します。これであなたはあなたの鳥がどれだけ遠くにいたかがわかります。鳥のサイズを計算するのはそれほど難しくありません。たとえば、既知のサイズのオブジェクトを撮影し、同じ距離で同じレンズを使用して写真を撮り、画像内のこのオブジェクトのサイズと画像内の鳥のサイズを比較できます。
一般的な答えは次のとおりです。はい、いいえ、EXIF情報以外に十分な情報を追加すればそれを行うことができます。十分な情報を追加しないと、いいえ、それは推定になります。その情報は非常に複雑な計算ですオブジェクトの遠近法を使用しますが、それを使用してフォトフレームの形式と角度に戻ります。次に、人の目またはフレームの中心を正確に測定し(地面からの仰角で)、正確な地面の情報を取得します。あなたとオブジェクトの間の表面標高。さらにそれ以上の計算。
他の回答が除外している重要なステップは、写真のデータを使用して、写真の対象となるオブジェクトの水平線と垂直線の遠近角を見つける必要があることです(実際には実行できますが、非常に複雑な計算)、たとえば操作する写真内のいくつかのオブジェクトのOPの例の場合はさらに複雑ですが、たとえばこの場合、オブジェクトが地面に「水平」に座っていない場合でも実行できます、高さ情報も必要です。OPの例では、その情報の多くがおそらく省略されているか不明であるため、その例の場合、答えは[いいえ]になります。しかし、明確にするために、その追加情報がわかっていて、何度もわかっている場合、またはその情報から推定を行うことができる場合、質問の前提は実行可能です。
これを(一般的に)どのように行うことができるかを要約すると、ユーザーとオブジェクトの間の地表面の高さの変化を正確に測定する必要があります(1つの文だけではありません)。
次に、地面から目の中心、またはカメラが生成する画像フレームの中心までの正確な寸法が必要です。この画像フレームは、EXIF情報から計算できますが、画像フレーム(カメラ)の正確な傾きオブジェクトに関連して、前述のパースペクティブ情報から計算する必要があります。OPの例の場合、オブジェクトの地面からの高さが必要です(またはオブジェクトの地面への投影)。
より一般的な例の写真で実行できることを示すために、これをすべて行うアプリは以下のとおりです(ただし、目の中心の推定値を使用しており、地表面標高の複雑な計算を行っており、これも「推定値」になります。 )
推定値を使用しているため、アプリの最終出力を修正するには、オブジェクトの1つの次元を知る必要があります。しかし、それはオブジェクトのすべてに巻尺をとる必要があるよりもはるかに優れています。明確に言うと、アプリの目またはイメージフレームの中心までの正確な寸法があり、地表面のプロファイルが変化する場合、その「既知の1つの寸法」も必要ありません。その場合、OPの質問に対する答えは「はい」になります。
最終的な出力は、オブジェクトの遠近法で修正された「標高」であり、自動寸法も含まれます。(この画像は遠近法補正されているため、すべての垂直方向が垂直、水平方向が水平方向であり、ユーザーからの入力なしで自動的に実行されます)この遠近法補正された画像はサイズの計算には必要ありませんが、遠近法補正情報が必要です、画像フレームの角度(ヨーチルトなど)を見つけるために使用されます。(写真の瞬間にカメラがどのように座っていたか)これは私が強調したいことですが、他のコメントは省略しています。OPの例のような「鳥」の場合、この必要なデータのためにかなり高く、乾燥したままになりますが、多くの状況で解決できます。たとえば、以下のこの例。
http://www.pictureenginecompany.com/MeasureEngine/MeasureEngine.html