@はてなブログ主にコンピュータビジョンなど技術について、たまに自分自身のことや思いついたことなど2018-01-22OpenCVのVizモジュールを使ってカメラの位置と点群を表示OpenCV三次元再構成なんかの論文では、よくカメラの位置を四角錘で可視化した図が乗ってたりしますが、その図もOpenCVのVizモジュールを使えば簡単に実現できます。ここにチュートリアルもありますが、一応解説を日本語で書いておきます。Vizモジュールを使うためにはVTKをあらかじめインストールした上で、CMake上でVTKのパスを指定してOpenCVをビルドする必要があります。表示myWindow.spin();}3Dを表示するためのウィンドウはcv::viz::Viz3dクラスから生成します。myWindow(winname);ここではViz3dクラスから生成したmyWindowに対し、メンバ変数showWidget()を使用してカメラウィジェットや点群ウィジェットを追加しています。wcamera);ウィジェットの姿勢はデフォルトでは単位行列(つまり原点)ですが、Viz3dのメンバ変数setWidgetPose()によって変更できます。カメラの位置を指定する場合、カメラ座標系から世界座標系への4x4変換行列を指定します。cv::Affine3f(T));点群を表示するためにはviz::WCloudクラスから点群ウィジェットを作成します。CV_64FC4,いずれかの型のcv::Matを作成し、その行列の各要素に点群の点の座標を格納します。ここではCV_32FC3型(32bit3チャネルの浮動小数点型)のcv::Matを作成し、それぞれのチャネルがX、Y、Z座標を表します。CV_32FC3);点群に対しても同様にsetWidgetPose()を使って姿勢を変更できますが、ここでは指定してません。最後にshowWidget()で点群を追加した後、spin()で作成した画面を表示させます。楕円の公式から回転行列と並進ベクトルを計算する三次元空間上の楕円は以下の式で表されます。配列を表すクラスMatの要素へアクセスする方法について。(1)はてなブログをはじめよう!takminさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。