問題タブ [calibration]

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 に答える
497 参照

opencv - カメラのキャリブレーションと再マッピングはピンホール カメラ モデルを生成しますか?

私はいくつかのオブジェクトを測定するためにopencvを使用しています。カメラのキャリブレーションを行って元の画像を再マッピングした後、結果の画像はピンホール カメラ モデルによって生成されたものと見なすことができますか? (したがって、 x = Xf/Z の簡単な方程式を使用できます)

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

python - マニピュレーター/カメラのキャリブレーションの問題 (線形代数志向)

私は、顕微鏡 (ビュー ポートに接続されたカメラを使用。ビデオ フィードは開発中のアプリケーションにストリーミングされます) とマニピュレーター アームを含む研究プロジェクトに取り組んでいます。顕微鏡とマニピュレーター アームは両方とも、Luigs & Neumann コントロール ボックスによって制御されます (非常に時代遅れです。コンピューターはシリアル ケーブルでインターフェイスし、応答時間は遅いですwww.)。顕微鏡は 3 次元で移動できます。X、Y、Z の各軸は互いに直角です。ボックスが照会されると、各デバイスの各軸の位置の 10 進値が返されます。各デバイスには、サブマイクロメートルの精度で特定の位置に移動するコマンドを送信できます。

ただし、マニピュレータ アームは 3 次元すべてで調整可能であるため、その軸のいずれかが直角に位置合わせされているという保証はありません。カメラからのビデオ ストリームを見て、マニピュレーター アームの先端を動かしたい画面上のポイントをクリックできるようにする必要があります。したがって、2 つの座標系を調整する必要があります。

現在、顕微鏡/カメラの位置をマニピュレーター アームの先端に移動し、そこを 2 つの座標系の同期点として、マニピュレーター アームを X 方向に +250um 移動し、顕微鏡を次に、これらの値の差を使用して、顕微鏡座標系の単位ごとに、マニピュレーターが移動した距離と方向に対応する 3 次元ベクトルを定義します。これは、マニピュレーター アームの各軸に対して繰り返されます。

このデータが取得されると、マニピュレーター アームを顕微鏡座標系の特定の位置に移動するために、プログラムによって連立方程式を解くことができます。画面の中心点。これまでのところ、これはかなり確実に機能します。

ここで直面している問題は、機器の応答時間が遅いため、キャリブレーション プロセスを完了するのに 5 ~ 10 分かかることがあります。実験中に、キャリブレーション プロセスを繰り返す必要があります。私たちの研究はかなり時間に敏感であり、これがプロセスの大きなボトルネックとなっています。

私の線形代数は少し不安定ですが、顕微鏡座標系で単位ごとにマニピュレーター アームの先端が移動する単位を測定し、これをプログラムにハード コードするだけで (今のところ)、可能かもしれません。マニピュレータの 3 つの軸すべてを特定の量だけ一度に動かし、この情報から各軸のベクトルを導き出します。これを行う方法がよくわかりません(または、これが可能かどうか)。アドバイスをいただければ幸いです。追加情報が必要な場合、または何か説明が必要な場合はお知らせください。

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

opencv - プロジェクターの焦点距離を決定する

私はcvPOSITアルゴリズムを実行して、Kinectの深度カメラでOptomaPK301を使用して投影されたポイントをマッピングしようとしています。MatlabのProjector-CameraCalibrationToolbox(http://code.google.com/p/procamcalib/)を使用してキャリブレーションすることにより、プロジェクターの固有のパラメーターを既に決定しました。これらの固有のパラメーター(特に焦点距離fc)を使用して、OpenCVのPOSIT関数にフィードするプロジェクターの実際の焦点距離を決定できますか?

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

opencv - OpenCV の undistortPoints もそれらを修正しますか?

2 つのカメラで OpenCV 2.3.1 を使用して 2 つのオブジェクト間の距離を特定しようとしていますが、オブジェクトの objectPoints (OCV 2.3.1、MSVC++、Windows 7) を計算できません。これは、視差が計算される前に画像ポイントが修正されていないためだと思います。

I. 私が最初にすること

ステップ 1. 各カメラを個別に調整する

ステップ 2. カメラをまとめてキャリブレーションする

ステップ 3. 整流データを作成する

Ⅱ.私が信じていること

目標: カメラ 1 からの画像とカメラ 2 からの画像の 1 つのオブジェクトのイメージ ポイントの歪みを修正して修正しようとしています (このプロセスを 2 回行います。1 回目はクレイ ハトがランチャーに乗っているとき、もう 1 回はクレイ ハトの前のフレームです)。崩壊する)

方法: initUndistortRectifyMap を使用してから Remap を使用する必要はないと思いますが、代わりに undistortPoints を使用することができます。undistortPoints は、関心のある点を歪ませずに修正すると思います。

III. 次にやること

私の信念が正しくない場合は、これを無視してかまいません。

undistortPoint の入力配列と出力配列 (launcherC1、launcherC1Undistorted、...、clayPigeonC2、clayPigeonC2Undistorted) は、Point2f オブジェクトのベクトルです。

IV. 信念と現実の不一致

すべての undistortPoints 関数が実行された後、

  1. launcherC1Undisorted.y は launcherC2Undistorted.y と等しくありません
  2. clayPigeonC1Undistorted.yはclayPigeonC2Undistorted.yと等しくない。

それらは最大 30% 異なります。

V. 質問

  1. Q1 undistortPoints はポイントの歪みを直すだけでなく、ポイントも修正しますか?
  2. Q1.1_はい。整流後に y の値は等しいはずですか?
  3. Q1.1.1_yes 含まれているコードから、私が間違っていることを教えてくれますか?
  4. Q1_no undistortPoints でポイントが修正されない場合、どうすれば修正できますか?
0 投票する
1 に答える
757 参照

touchscreen - タッチスクリーンキャリブレーション

高度な計算を使用せずに、タッチスクリーンを調整する簡単な方法はありますか?

私は自分のLCDライブラリと自分のタッチパッドライブラリを作成しましたが、どちらもうまく機能しますが、もちろん、使用可能な結果を​​得る前にタッチパッドを調整する必要があります。私が見つけた唯一のものはこれです、そしてそれは私にとって多くの数学です。また、非常に正確な結果は必要ありません。ちょうど±10ピクセルを取得することができます。

SSD1289コントローラーとADS7843タッチパッドコントローラーを備えたTFT3.2"LCD320x240モジュールを使用しています。

http://www.eetimes.com/design/embedded/4023968/How-To-Calibrate-Touch-Screens

ご協力いただきありがとうございます。

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

opencv - cvInitUndistortMap() クラッシュ

Bradski による「Learning OpenCV」の例 11-1 を実行しています。cvInitUndistortMap() を使用しようとすると、実装がクラッシュします。

同様の投稿 (ここ) には、cvUndistort2() と cvRemap() のカラー画像の使用に関する問題がありました。ここの問題が関連しているかどうかはわかりません。

コードは次のとおりです。

Intrinsics.xml および Distortion.xml からのキャリブレーション結果は次のとおりです。

Intrinsics.xml:

歪み.xml:

OpenCV 2.4、Windows7、Microsoft Visual C++ 2010 Express、および MBP Webcam を使用しています。

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

matlab - 前後の値を使用して目的の値を分析::: 放射測定キャリブレーション - ストリーキング

1x15 のデータ テーブルがあるとします。

したがって、ストリーキング方程式では、これを実装する必要があります。

% ストリーキング = {[abs(Q_n - ((Q_n-1 + Q_n+1)/2))] / ((Q_n-1 + Q_n+1)/2)))}*100

式の説明:

値 90 を Q_n に割り当てましょう (これはセル (1,5) から取得されます)。この値を使用すると、Q_n-1 の場合は値 59 が必要になり、Q_n+1 の場合は値 26 が必要になります (したがって、 (1,4) の前のセルと (1,6) の後のセルの本質)

Q_n = 90

Q_n-1 = 59

Q_n+1 = 26

私の質問は次のとおりです。データセット全体に対してこれをどのように行い、それらをストリーキング方程式に適用しますか? (行 1 に Q_n-1 を指定できず、行 15 に Q_n+1 を指定できないため、行 1 と 15 を除く)

私はおそらくこれに沿って何かを考えていました:

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

opencv - 非正方形 (=非 NxN) グリッドと findChessboardCorners() を使用する場合

これを OpenCV フォーラムに投稿しましたが、今のところ返信がないので、ここで試してみてください。

2.4.0 リファレンス マニュアルの 352 ページには、次の注記があります。

注: 非正方形 (=NxN 以外) のグリッドを使用し、キャリブレーションに findChessboardCorners() を使用している場合、 calibrationCamera は不適切な値を返します (歪み係数がゼロで、画像の中心が (w/2-0.5,h/2- 0.5)、および/または fx と fy の大きな違い (比率が 10:1 以上)) の場合、おそらく patternSize=cvSize(cols,rows) infindChessboardCorners() を使用する代わりに patternSize=cvSize(rows,cols) を使用しています。

これは私を混乱させます。チェス盤の行と列を定義するものは何ですか? 結局、チェス盤を回転させたり動かしたりしながら、キャリブレートカメラで使用するデータ セットを収集します。

とても遠いとは?私は正方形ではないチェス盤、1292x964、1/3 フォーマット、4 mm 非球面レンズを持っています。フル ワイドでは、cx =639 および cy=550 になります。理想的には、これらは 1292/2 = 646 および 964/2= 457 であるべきです。

cy で取得している 550 と予想される 457 は「大きな違い」ですか?

patternSize で幅/高さを交換する必要がありますか? もしそうなら、カメラのイメージャーに関してチェス盤の行と列の概念を維持するために、キャリブレーション中にチェス盤の回転を制限する必要があることを意味しますか?

ありがとう、デイブ・トーマス

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

opencv - OpenCVOpenNIはkinectを調整します

私は家を使ってkinectでキャプチャします:

深度ピクセル値を正しくするためにkinectをキャリブレーションする必要があるかどうかはわかりません。つまり、画像RBGからピクセル(u、v)を取得する場合、画像の深度からピクセル(u、v)を取得して深度の正しい値を取得しますか?

どんな助けでも大歓迎です。ありがとう!

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

c++ - 変数 ' ' の周りのスタックが壊れていました (opencv で)

このコードをデバッグすると、cvundistortpoint に入らず、次のエラーが表示されます。変数 'input' の周りのスタックが壊れています。この質問に対する同様の回答を読んだことがありますが、どれも OpenCV にはありませんでした。違いはありますか? _src と _dest の行列サイズが原因ですか? _src が満たされているかどうかを確認するために「for」ループを配置しました。