OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
3D ビジュアライザ

トピック

 ウィジェット
 

詳細説明

このセクションでは、3D可視化ウィンドウと、それを操作するために使用されるクラスおよびメソッドについて説明する。

3D可視化ウィンドウ (Viz3dを参照) はウィジェット (ウィジェットを参照) を表示するために使用され、シーンやウィジェットを操作するためのいくつかのメソッドを提供する。

クラス

class  cv::viz::Camera
 このクラスはカメラの内部パラメータをラップする。 続きを読む...
 
class  cv::viz::Color
 このクラスはBGR順の色を表す。 続きを読む...
 
class  cv::viz::KeyboardEvent
 このクラスはキーボードイベントを表す。 続きを読む...
 
class  cv::viz::Mesh
 このクラスはメッシュ属性をラップし、plyファイルからメッシュを読み込むことができる。: 続きを読む...
 
class  cv::viz::MouseEvent
 このクラスはマウスイベントを表す。 続きを読む...
 
class  cv::viz::Viz3d
 Viz3dクラスは3D可視化ウィンドウを表す。このクラスは暗黙的に共有される。 続きを読む...
 

関数

void cv::viz::computeNormals (const Mesh &mesh, OutputArray normals)
 
Viz3d cv::viz::getWindowByName (const String &window_name)
 名前を指定してウィンドウを取得する。
 
Viz3d cv::viz::imshow (const String &window_name, InputArray image, const Size &window_size=Size(-1, -1))
 指定したウィンドウに画像を表示する。
 
template<typename _Tp >
bool cv::viz::isNan (const Point3_< _Tp > &p)
 float/double値がnanかどうかを調べる。
 
template<typename _Tp , int cn>
bool cv::viz::isNan (const Vec< _Tp, cn > &v)
 float/double値がnanかどうかを調べる。
 
bool cv::viz::isNan (double x)
 float/double値がnanかどうかを調べる。
 
bool cv::viz::isNan (float x)
 float/double値がnanかどうかを調べる。
 
Affine3d cv::viz::makeCameraPose (const Vec3d &position, const Vec3d &focal_point, const Vec3d &y_dir)
 position, focal_point, up_vectorからカメラのポーズを構築する (詳細はgluLookAt()を参照)。
 
Affine3d cv::viz::makeTransformToGlobal (const Vec3d &axis_x, const Vec3d &axis_y, const Vec3d &axis_z, const Vec3d &origin=Vec3d::all(0))
 座標系のデータを受け取り、グローバル座標系への変換を構築する。
 
Mat cv::viz::readCloud (const String &file, OutputArray colors=noArray(), OutputArray normals=noArray())
 
Mesh cv::viz::readMesh (const String &file)
 メッシュを読み込む。現在はply形式のみがサポートされており、テクスチャの読み込みには対応していない。
 
bool cv::viz::readPose (const String &file, Affine3d &pose, const String &tag="pose")
 ポーズと軌跡の読み書きを行う。
 
void cv::viz::readTrajectory (OutputArray traj, const String &files_format="pose%05d.xml", int start=0, int end=INT_MAX, const String &tag="pose")
 
void cv::viz::unregisterAllWindows ()
 すべてのVizウィンドウを内部データベースから登録解除する。実行後は'getWindowByName()'がデータベースから既存のものを取得する代わりに新しいウィンドウを作成する。
 
void cv::viz::writeCloud (const String &file, InputArray cloud, InputArray colors=noArray(), InputArray normals=noArray(), bool binary=false)
 クラウドの読み書きを行う。サポートされている形式: ply, xyz, obj, stl (読み込み専用)
 
void cv::viz::writePose (const String &file, const Affine3d &pose, const String &tag="pose")
 
void cv::viz::writeTrajectory (InputArray traj, const String &files_format="pose%05d.xml", int start=0, const String &tag="pose")
 

関数詳解

◆ computeNormals()

void cv::viz::computeNormals ( const Mesh & mesh,
OutputArray normals )

#include <opencv2/viz/vizcore.hpp>

メッシュの法線の計算

引数
mesh入力メッシュ。
normalsメッシュ内の各点における、型 CV_64FC3 の法線。

◆ getWindowByName()

Viz3d cv::viz::getWindowByName ( const String & window_name)

#include <opencv2/viz/vizcore.hpp>

名前を指定してウィンドウを取得する。

引数
window_name取得対象となるウィンドウの名前。

この関数は指定した名前を持つViz3dオブジェクトを返す。

覚え書き
その名前のウィンドウが既に存在する場合は、そのウィンドウが返される。そうでない場合は、指定した名前で新しいウィンドウが作成され、それが返される。

◆ imshow()

Viz3d cv::viz::imshow ( const String & window_name,
InputArray image,
const Size & window_size = Size(-1, -1) )

#include <opencv2/viz/vizcore.hpp>

指定したウィンドウに画像を表示する。

◆ isNan() [1/4]

template<typename _Tp >
bool cv::viz::isNan ( const Point3_< _Tp > & p)
inline

#include <opencv2/viz/vizcore.hpp>

float/double値がnanかどうかを調べる。

引数
p点の要素のいずれかnanであればtrueを返す。
この関数の呼び出しグラフ:

◆ isNan() [2/4]

template<typename _Tp , int cn>
bool cv::viz::isNan ( const Vec< _Tp, cn > & v)
inline

#include <opencv2/viz/vizcore.hpp>

float/double値がnanかどうかを調べる。

引数
vベクトルの要素のいずれかnanであればtrueを返す。
この関数の呼び出しグラフ:

◆ isNan() [3/4]

bool cv::viz::isNan ( double x)
inline

#include <opencv2/viz/vizcore.hpp>

float/double値がnanかどうかを調べる。

引数
xnanであればtrueを返す。

◆ isNan() [4/4]

bool cv::viz::isNan ( float x)
inline

#include <opencv2/viz/vizcore.hpp>

float/double値がnanかどうかを調べる。

引数
xnanであればtrueを返す。

◆ makeCameraPose()

Affine3d cv::viz::makeCameraPose ( const Vec3d & position,
const Vec3d & focal_point,
const Vec3d & y_dir )

#include <opencv2/viz/vizcore.hpp>

position, focal_point, up_vectorからカメラのポーズを構築する (詳細はgluLookAt()を参照)。

引数
positionグローバル座標系におけるカメラの位置。
focal_pointグローバル座標系におけるカメラの焦点。
y_dirグローバル座標系におけるカメラの上方向ベクトル。

この関数はグローバル座標系におけるカメラのポーズを返す。

◆ makeTransformToGlobal()

Affine3d cv::viz::makeTransformToGlobal ( const Vec3d & axis_x,
const Vec3d & axis_y,
const Vec3d & axis_z,
const Vec3d & origin = Vec3d::all(0) )

#include <opencv2/viz/vizcore.hpp>

座標系のデータを受け取り、グローバル座標系への変換を構築する。

引数
axis_xグローバル座標系におけるX軸ベクトル。
axis_yグローバル座標系におけるY軸ベクトル。
axis_zグローバル座標系におけるZ軸ベクトル。
originグローバル座標系における座標系の原点。
戻り値
グローバル座標系と指定した座標系との間の変換を表すアフィン変換。返される変換は、指定した座標系内の点をグローバル座標系へ変換できる。

◆ readCloud()

Mat cv::viz::readCloud ( const String & file,
OutputArray colors = noArray(),
OutputArray normals = noArray() )

#include <opencv2/viz/vizcore.hpp>

引数
file拡張子付きのファイル名。サポートされている形式: PLY, XYZ, OBJ, STL。
colorsPLYおよびSTL形式でのみ使用される。
normalsPLY, OBJ, STL形式でのみ使用される。
戻り値
ビット深度CV_32FまたはCV_64F、チャンネル数3または4で、行数が1のみの点の座標を格納する行列。

◆ readMesh()

Mesh cv::viz::readMesh ( const String & file)

#include <opencv2/viz/vizcore.hpp>

メッシュを読み込む。現在はply形式のみがサポートされており、テクスチャの読み込みには対応していない。

◆ readPose()

bool cv::viz::readPose ( const String & file,
Affine3d & pose,
const String & tag = "pose" )

#include <opencv2/viz/vizcore.hpp>

ポーズと軌跡の読み書きを行う。

引数
filecv::FileStorageがサポートする型のファイル名。
pose出力行列。
tagファイル内のポーズの名前。

◆ readTrajectory()

void cv::viz::readTrajectory ( OutputArray traj,
const String & files_format = "pose%05d.xml",
int start = 0,
int end = INT_MAX,
const String & tag = "pose" )

#include <opencv2/viz/vizcore.hpp>

T = float/doubleのvector<Affine3<T>>を受け取り、一連のファイルからポーズを読み込む

引数
traj姿勢のリストを格納する出力配列。以下のいずれかが指定できる。
  • std::vector<cv::Affine3f>, std::vector<cv::Affine3d>
  • cv::Mat
files_formatファイル名を構築するための書式指定文字列。文字列中のプレースホルダはintをサポートする必要がある。
startfiles_formatの初期カウンタ。0以上でなければならない。
endfiles_formatの最終カウンタ。
tagファイル内の行列の名前。

◆ unregisterAllWindows()

void cv::viz::unregisterAllWindows ( )

#include <opencv2/viz/vizcore.hpp>

すべてのVizウィンドウを内部データベースから登録解除する。実行後は'getWindowByName()'がデータベースから既存のものを取得する代わりに新しいウィンドウを作成する。

◆ writeCloud()

void cv::viz::writeCloud ( const String & file,
InputArray cloud,
InputArray colors = noArray(),
InputArray normals = noArray(),
bool binary = false )

#include <opencv2/viz/vizcore.hpp>

クラウドの読み書きを行う。サポートされている形式: ply, xyz, obj, stl (読み込み専用)

引数
file拡張子付きのファイル名。サポートされている形式: PLY, XYZ, OBJ。
cloudサポートされているビット深度: CV_32FおよびCV_64F。サポートされているチャンネル数: 3および4。
colorsPLY形式でのみ使用される。サポートされているビット深度: CV_8U。サポートされているチャンネル数: 1, 3, 4。
normalsPLYおよびOBJ形式でのみ使用される。サポートされているビット深度: CV_32FおよびCV_64F。サポートされているチャンネル数: 3および4。
binaryPLY形式でのみ使用される。

◆ writePose()

void cv::viz::writePose ( const String & file,
const Affine3d & pose,
const String & tag = "pose" )

#include <opencv2/viz/vizcore.hpp>

引数
fileファイル名。
pose入力行列。
tag指定したファイルに保存するポーズの名前。

◆ writeTrajectory()

void cv::viz::writeTrajectory ( InputArray traj,
const String & files_format = "pose%05d.xml",
int start = 0,
const String & tag = "pose" )

#include <opencv2/viz/vizcore.hpp>

T = float/doubleのvector<Affine3<T>>を受け取り、指定したファイル名形式で一連のファイルに書き込む

引数
traj姿勢のリストを格納する軌跡。以下のいずれかが指定できる。
  • std::vector<cv::Mat>。各 cv::Mat は型 CV_32F16 または CV_64FC16
  • std::vector<cv::Affine3f>, std::vector<cv::Affine3d>
  • 型 CV_32FC16 または CV_64F16 の cv::Mat
files_formatファイル名を構築するための書式指定文字列。文字列中のプレースホルダはintをサポートする必要がある。
startfiles_formatの初期カウンタ。
tagファイル内の行列の名前。