2016-09-12 53 views
1

私は最近、足の長さを測定したいと思っています。クレジットカードのサイズは既知で安定している(8.5cm * 5.4cm)、長いエッジの「cardL」なので、クレジットカードを参考にしました。足の長さを 'footL'とします。opencvで測定の精度を上げる方法

プロセス:

  1. は足とクレジットカードと一緒に写真を撮ります。

  2. クレジットカードの輪郭を取得し、カードの大きさを測定するために、minAreaRect機能を使用し、カードの長辺(cardl)を取得

  3. 足の輪郭を取得し、長さを得るために同じ方法を使用します足の(footl)

  4. 使用式:cardl:footl = cardL:footL

など。私は次のように写真を撮った。私は足の長さを測定したところ22.4cmです。写真の足のピクセル長は2137.6です。カードのピクセルの長い辺は763.14なので、footL = 24cmです。この結果は不正確です。どのようにして測定の精度を向上させることができますか?

eg. I took a photo as follow. I measured the length of foot is 22.4cm. the pixel length of foot in the photo is 2137.6. the pixel long edge of card is 763.14, so footL = 24cm. This result is imprecise. How could I improve the precision of measurement?

もう一つの問題は、私は別の高さに写真を撮るとき(足のピクセルは毎回異なり、高さが小さいほど、結果「footLは」本当の値よりもはるかに大きいです。)であります

+0

単純な実装(説明しています)のために、リファレンスとサンプルは、カメラと同じ深さになければなりません。また、リファレンスとサンプルの間でカメラを移動することはできません。 – Peter

+0

と足のフェチ人は夢中になる – deW1

+0

サンプル画像の視点から、正確に足の「終わり」はどこですか?私は鋭い特徴を見ません、実際に私は足の長さを定義する方法で不確実性の簡単に1.6センチメートルを参照してください。 – Peter

答えて

1

私はあなたのアイデアが好きです!

いくつかの考えがあります。クレジットカードで定義されている平面内のオブジェクトの長さを測定します。それを行うための可能な方法:

  • お使いのカメラのキャリブレーション(感謝リマインダー用@PSchn)
  • が地上での通常の位置に足を休ま(あなたが提供された画像のように回転していない)
  • 場所横にクレジットカード
  • は、
    • 全体のクレジットカード(無閉塞)OBJの
    • 寸法を含むような角度で写真を撮りますあなたが測定したいと思っているもの、例えば。あなたの場合、かかとにつま先をつけます。
  • クレジットカードの投影を(クレジットカードサイズの)直線矩形に変換する画像にホモグラフィ変換を適用します。
  • 最後に、上記のリストに式4を適用します。
+0

カメラを較正することを忘れないでください;) – PSchn

関連する問題