問題タブ [opencv-solvepnp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
933 参照

javascript - solvePnP で opencv.js を見つけることができる場所、またはそれを構築する方法を教えてください。

皆さんこんにちは) opencv.js で opencv の関数 solvePnP が必要です。しかし、solvepnp が含まれているバージョンが見つかりません。solvePnP で opencv.js のバージョンを見つけるか、ビルドするのを手伝ってくれませんか? 他のjsライブラリでsolvePnPを見つけることができる場所を知っていますか?

0 投票する
1 に答える
325 参照

python - 長方形のオブジェクトの姿勢の推定は不安定です

次のコードを使用して、長方形のオブジェクトの回転ベクトルと並進ベクトルを見つけています。長方形のオブジェクトの高さと幅は、それぞれ 33 cm と 44 cm です。そこで、次のコードを使用してオブジェクト ポイントを作成しています。

次のコードを使用して、回転、並進ベクトルを決定します。

何らかの理由で、結果は常に間違っています。オブジェクト ポイントを適切に作成していますか?

0 投票する
0 に答える
400 参照

javascript - exception_catching は無効です - この例外はキャッチできません

私は mjyc/opencv.js バージョンを使用しており、cv.solvePnP 関数を実行すると、これが表示されます

私が実行するnode --trace-uncaught pnp.jsと、これが得られます。

これは、エラーが発生しているコードのチャンクです

ここで何が起こっているのか誰か理解していますか?

0 投票する
1 に答える
538 参照

python - エラー fabs(sc) > DBL_EPSILON は関数 cvFindExtrinsicCameraParams2 で何を意味しますか?

PythonでOpenCV(4.0.0)のsolvePnPRansac関数を使用しています。ときどき (常にではありませんが) 関数にポイントを渡すと、エラーが発生します。

「solvePnPRansac」(私が直接使用している関数)から呼び出される関数「cvFindExtrinsicCameraParams2」で。これが何を意味するのか、何が間違っているのか誰か知っていますか?

私の使用例では、次のように「solvePnPRansac」を使用しています。

0 投票する
0 に答える
567 参照

java - OpenCV イメージ座標からワールド座標への変換の問題

単眼カメラでオブジェクトの画像をキャプチャしようとしています:

  1. まず、カメラの通常のキャリブレーション
  2. 次に、ワールド システムとカメラ システムの両方で既知のオブジェクト座標を使用して、カメラの透視キャリブレーションを行います。

これらの 2 つの手順の後、フレーム内で検出されたオブジェクトのワールド座標を取得できるはずです。このリンクは、私がやろうとしていることをより詳細なパターンで説明していますが、リンクとは異なり、OpenCV を Python ではなく Java で使用しています。

これまでのところ、通常のキャリブレーションを行うことができ、カメラの固有パラメーターと回転/並進ベクトルを取得できました。これらのパラメーターを solvePnPRansac() OpenCv 関数で使用して、カメラの外部行列を取得しました。これにより、射影行列を構築して、点をワールド座標から画像座標に変換できました。得られたパラメータは次のとおりです。

組み込みパラメータ 歪み係数

新しい最適なカメラ マトリックス

回転ベクトルと並進ベクトル

外部パラメータ

このステップから、最初のリンクに示されている 2 つの操作を実行するために必要なものがすべて揃っています。

ここからが複雑になります。ワールド システム座標を使用すると、オブジェクト検出アルゴリズム (+- 数ピクセル) で取得した正しいイメージ システム座標が得られます。しかし、2回目の操作をしようとすると、得られた結果はまったく意味がありません。最初に、外部パラメーターを取得するために使用したコードを次に示します。

最初の操作 (ワールド システムからイメージ システムへ) の場合:

(154,169,475)のように、かなり良い結果が得られました。得られた結果は次のとおりです。

取得画像点

2 番目の操作 (イメージ システムからワールド システムへ) のコード:

同じポイントに対して、次のような座標が返されました:

世界座標点

問題がどこから来ているのか、私は本当に迷っています。何度もコードを修正しましたが、アルゴリズムは間違っていないようです。ただし、取得した外部パラメーター、特にカメラ/ワールドの設定によると X 値に近いはずの tVecsPnP の Z 値が高すぎるのではないかと疑っていますが、修正方法がわかりません。誰かがこれを克服する方法について手がかりを持っている場合は、私に知らせてください:)ありがとう!