https://docs.opencv.org/3.2.0/da/de9/tutorial_py_epipolar_geometry.htmlに指定されたコードを使用してエピポーラ線を見つけようとしましたが、リンクで指定された出力を取得する代わりに、次の出力。
しかし、行F, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_LMEDS)
を
F, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_RANSAC)
ie: using RANSAC
algorithm to find Fundamental matrix instead of LMEDS
this に変更すると、次の出力が得られます。
同じ行を ie: use Eight point algorithm に置き換えるとF, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_8POINT)
、次の出力になります。
出力に関する上記のすべてには、視覚的な健全性がなく、エピポーラ線を見つけるためのopencvドキュメントで指定された出力に近づくこともありません。しかし皮肉なことに、この特定のシーケンスで基本行列を見つけるアルゴリズムを変更して同じコードを実行すると、
- FM_LMEDS
- FM_8POINT
- FM_7POINT
- FM_LMEDS
最も正確な結果が生成されます。これが出力です。
任意のアルゴリズムの 1 回の実行で上記の出力が得られると思われます (マトリックス値とエラーの変動を伴う)。コードを間違って実行していますか? 正しいエピポーラ線を取得するために私がしなければならないことは何ですか (つまり、視覚的に正気ですか)? 私はopencvバージョン3.3.0とpython 2.7を使用しています。返信をお待ちしております。ありがとうございました。