OpenCVを使用して魚眼レンズカメラで撮影した画像を校正しています。私が使用していますOpenCV魚眼校正では画像が大きくカットされます
機能は以下のとおりです。
findChessboardCorners(...);
は、キャリブレーションパターンのコーナーを見つけること。cornerSubPix(...);
見つかったコーナーを細かくする。fisheye::calibrate(...);
カメラマトリックスと歪み係数を較正する。fisheye::undistortImage(...);
較正から得られたカメラ情報を使用して画像を歪ませないようにします。
結果の画像がよく見える(直線など)ように見えますが、私の問題は、画像があまりにも多く画像を切り取ってしまうことです。
私はそれらの間に90度の4つのカメラを使用しているので、これは本当の問題です。側面の多くが切り取られていると、それらの間に重複する領域はありません。画像。
私はfisheye::estimateNewCameraMatrixForUndistortRectify(...)
を使用してに見えたが、私は、私はR
入力として置くべきかわからないようfisheye::calibrate
の回転ベクトルの出力は、Nは数ある3XN(あるとして、私は、それが良い結果を与えることを得ることができませんでした)、fisheye::estimateNewCameraMatrixForUndistortRectify
には1x3または3x3が必要です。
以下の画像は、私の歪みのない結果のイメージと、私が理想的に望む結果の例を示しています。
歪み補正:指名手配結果の
例:
私は、それは私が望んでいた結果の種類を与えた(OpenCVのサンプルフォルダ内の画像を使用して)こと、および定期的なイメージにしようとした私は私の魚眼画像にそれを使用する場合しかし、それは与えるものではありません欲しい結果。 – NoShadowKick
[私の結果の画像を表示フォルダ](https://www.dropbox.com/sh/pkudy2acgqyyjc5/AAAWE5cMEiT6dGB0hwDnVm69a?dl=0) – NoShadowKick
あなたのイメージは非常に広角カメラ(〜180度FOV)からであるように見えます。あなたはすべてのピクセルを含めたい場合 - あなたは(メインカメラ軸> = 180からの角度を持つピクセルは無限大に投影されることになるので)、無限のサイズの画像を作成する必要があります。したがって、有限のサイズの画像を取得するには、その一部を破棄する必要があります。ところで、どのアルファを使ったのですか? – alexisrozhkov