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

詳細説明

ICP点対平面オドメトリアルゴリズム

クラス

class  cv::linemod::ColorGradient
 カラー画像から量子化された勾配方向を計算する Modality詳細...
 
class  cv::linemod::DepthNormal
 密な深度マップから量子化された表面法線を計算する Modality詳細...
 
class  cv::linemod::Detector
 任意のモダリティの組み合わせを用いた LINE テンプレートマッチングアルゴリズムによる物体検出器。詳細...
 
struct  cv::linemod::Feature
 位置とラベルで記述される識別特徴。詳細...
 
struct  cv::linemod::Match
 テンプレートマッチングの成功結果を表す。詳細...
 
class  cv::linemod::Modality
 LINE テンプレートマッチング表現に組み込むモダリティのインターフェース。詳細...
 
class  cv::linemod::QuantizedPyramid
 画像ピラミッド上で動作するモダリティを表す。詳細...
 
class  cv::RgbdNormals
 
struct  cv::linemod::Template
 

列挙型

enum  cv::RgbdPlaneMethod { cv::RGBD_PLANE_METHOD_DEFAULT }
 

関数

 cv::linemod::QuantizedPyramid::Candidate::Candidate (int x, int y, int label, float score)
 
 cv::linemod::Feature::Feature (int x, int y, int label)
 
 cv::linemod::Match::Match (int x, int y, float similarity, const String &class_id, int template_id)
 
void cv::linemod::colormap (const Mat &quantized, Mat &dst)
 量子化画像を表示用にカラーマップ化するデバッグ関数。
 
void cv::depthTo3d (InputArray depth, InputArray K, OutputArray points3d, InputArray mask=noArray())
 
void cv::depthTo3dSparse (InputArray depth, InputArray in_K, InputArray in_points, OutputArray points3d)
 
void cv::linemod::drawFeatures (InputOutputArray img, const std::vector< Template > &templates, const Point2i &tl, int size=10)
 linemod 特徴を描画するデバッグ関数。
 
void cv::findPlanes (InputArray points3d, InputArray normals, OutputArray mask, OutputArray plane_coefficients, int block_size=40, int min_size=40 *40, double threshold=0.01, double sensor_error_a=0, double sensor_error_b=0, double sensor_error_c=0, RgbdPlaneMethod method=RGBD_PLANE_METHOD_DEFAULT)
 
Ptr< linemod::Detectorcv::linemod::getDefaultLINE ()
 カラー勾配を用いた LINE アルゴリズムによる検出器のファクトリ関数。
 
Ptr< linemod::Detectorcv::linemod::getDefaultLINEMOD ()
 カラー勾配と深度法線を用いた LINE-MOD アルゴリズムによる検出器のファクトリ関数。
 
void cv::registerDepth (InputArray unregisteredCameraMatrix, InputArray registeredCameraMatrix, InputArray registeredDistCoeffs, InputArray Rt, InputArray unregisteredDepth, const Size &outputImagePlaneSize, OutputArray registeredDepth, bool depthDilation=false)
 
void cv::rescaleDepth (InputArray in, int type, OutputArray out, double depth_factor=1000.0)
 
void cv::warpFrame (InputArray depth, InputArray image, InputArray mask, InputArray Rt, InputArray cameraMatrix, OutputArray warpedDepth=noArray(), OutputArray warpedImage=noArray(), OutputArray warpedMask=noArray())
 

列挙型詳解

◆ RgbdPlaneMethod

#include <opencv2/ptcloud/depth.hpp>

列挙値
RGBD_PLANE_METHOD_DEFAULT 
Python: cv.RGBD_PLANE_METHOD_DEFAULT

関数詳解

◆ Candidate()

cv::linemod::QuantizedPyramid::Candidate::Candidate ( int x,
int y,
int label,
float score )
inline

◆ Feature()

cv::linemod::Feature::Feature ( int x,
int y,
int label )
inline

◆ Match()

cv::linemod::Match::Match ( int x,
int y,
float similarity,
const String & class_id,
int template_id )
inline

◆ colormap()

void cv::linemod::colormap ( const Mat & quantized,
Mat & dst )
Python:
cv.linemod.colormap(quantized[, dst]) -> dst

#include <opencv2/rgbd/linemod.hpp>

量子化画像を表示用にカラーマップ化するデバッグ関数。

◆ depthTo3d()

void cv::depthTo3d ( InputArray depth,
InputArray K,
OutputArray points3d,
InputArray mask = noArray() )
Python:
cv.depthTo3d(depth, K[, points3d[, mask]]) -> points3d

#include <opencv2/ptcloud/depth.hpp>

深度画像を3D点に変換する。マスクが空の場合、結果の配列は depth と同じ次元を持つ。そうでない場合は、マスクで有効化された値のみを含む1次元ベクトルになる。座標系はxが左、yが下、zがカメラから離れる方向を指す

引数
depth深度画像(short int CV_U として与えられた場合はミリメートル単位の深度とみなされる(Microsoft Kinect で行われるように)。一方、CV_32F または CV_64F として与えられた場合はメートル単位とみなされる)
Kキャリブレーション行列
points3d結果として得られる3D点(点は4チャンネルの値 [x, y, z, 0] で表される)。depth が CV_32F または CV_64F の場合は depth と同じビット深度になり、depth が CV_16U または CV_16S のビット深度の場合は K のビット深度になる
mask考慮する点のマスク(空でもよい)

◆ depthTo3dSparse()

void cv::depthTo3dSparse ( InputArray depth,
InputArray in_K,
InputArray in_points,
OutputArray points3d )
Python:
cv.depthTo3dSparse(depth, in_K, in_points[, points3d]) -> points3d

#include <opencv2/ptcloud/depth.hpp>

引数
depth深度画像
in_K
in_pointsxy座標のリスト
points3d結果として得られる3D点(点は4チャンネルの値 [x, y, z, 0] で表される)

◆ drawFeatures()

void cv::linemod::drawFeatures ( InputOutputArray img,
const std::vector< Template > & templates,
const Point2i & tl,
int size = 10 )
Python:
cv.linemod.drawFeatures(img, templates, tl[, size]) -> img

#include <opencv2/rgbd/linemod.hpp>

linemod 特徴を描画するデバッグ関数。

引数
img
templatesDetector::addTemplate を参照
tlテンプレートのバウンディングボックスの左上オフセット。Detector::addTemplate を参照
sizeマーカーサイズ。cv::drawMarker を参照

◆ findPlanes()

void cv::findPlanes ( InputArray points3d,
InputArray normals,
OutputArray mask,
OutputArray plane_coefficients,
int block_size = 40,
int min_size = 40 *40,
double threshold = 0.01,
double sensor_error_a = 0,
double sensor_error_b = 0,
double sensor_error_c = 0,
RgbdPlaneMethod method = RGBD_PLANE_METHOD_DEFAULT )
Python:
cv.findPlanes(points3d, normals[, mask[, plane_coefficients[, block_size[, min_size[, threshold[, sensor_error_a[, sensor_error_b[, sensor_error_c[, method]]]]]]]]]) -> mask, plane_coefficients

#include <opencv2/ptcloud/depth.hpp>

深度画像内の平面を見つける

引数
points3d深度画像と同様に整理された3次元点。3チャンネルの rows x cols
normals深度画像内の各点に対する法線。省略可能で、空でもよい
mask各ピクセルに、それが属する平面のラベルが付けられ、どの平面にも属さない場合は255が付けられた画像
plane_coefficients対応する平面の係数 (a,b,c,d)。ax+by+cz+d=0, norm(a,b,c)=1, c < 0 を満たす(これにより法線がカメラの方を向く)
block_size安定したMSEを調べる際に対象とするブロックのサイズ
min_size平面とみなすために必要なクラスタの最小サイズ
threshold点が平面に属するとみなされるための、点から平面までの最大距離(単位はメートル)
sensor_error_aセンサ誤差の係数。デフォルトは0。Kinectの場合は0.0075を使用する
sensor_error_bセンサ誤差の係数。デフォルトは0
sensor_error_cセンサ誤差の係数。デフォルトは0
method平面の計算に使用する手法。

◆ getDefaultLINE()

Ptr< linemod::Detector > cv::linemod::getDefaultLINE ( )
Python:
cv.linemod.getDefaultLINE() -> retval

#include <opencv2/rgbd/linemod.hpp>

カラー勾配を用いた LINE アルゴリズムによる検出器のファクトリ関数。

VGA画像に適したデフォルトの引数設定。

◆ getDefaultLINEMOD()

Ptr< linemod::Detector > cv::linemod::getDefaultLINEMOD ( )
Python:
cv.linemod.getDefaultLINEMOD() -> retval

#include <opencv2/rgbd/linemod.hpp>

カラー勾配と深度法線を用いた LINE-MOD アルゴリズムによる検出器のファクトリ関数。

VGA画像に適したデフォルトの引数設定。

◆ registerDepth()

void cv::registerDepth ( InputArray unregisteredCameraMatrix,
InputArray registeredCameraMatrix,
InputArray registeredDistCoeffs,
InputArray Rt,
InputArray unregisteredDepth,
const Size & outputImagePlaneSize,
OutputArray registeredDepth,
bool depthDilation = false )
Python:
cv.registerDepth(unregisteredCameraMatrix, registeredCameraMatrix, registeredDistCoeffs, Rt, unregisteredDepth, outputImagePlaneSize[, registeredDepth[, depthDilation]]) -> registeredDepth

#include <opencv2/ptcloud/depth.hpp>

深度データを外部カメラへ位置合わせする。深度クラウドを作成し、カメラ間の剛体変換でクラウドを変換し、変換後の点を RGB カメラへ投影することで位置合わせを行う。

uv_rgb = K_rgb * [R | t] * z * inv(K_ir) * uv_ir

現時点では負の深度値はチェックしない。

引数
unregisteredCameraMatrix深度カメラのカメラ行列
registeredCameraMatrix外部カメラのカメラ行列
registeredDistCoeffs外部カメラの歪み係数
Rtカメラ間の剛体変換。深度カメラ座標系から外部カメラ座標系へ点を変換する。
unregisteredDepth入力深度データ
outputImagePlaneSize外部カメラの画像平面の寸法(幅, 高さ)
registeredDepth深度を外部カメラへ変換した結果
depthDilation穴やオクルージョン誤差を避けるために深度を膨張させるかどうか(省略可能)

◆ rescaleDepth()

void cv::rescaleDepth ( InputArray in,
int type,
OutputArray out,
double depth_factor = 1000.0 )
Python:
cv.rescaleDepth(in_, type[, out[, depth_factor]]) -> out

#include <opencv2/ptcloud/depth.hpp>

入力画像が CV_16UC1 型(Kinect のものなど)の場合、画像は float に変換され、depth_factor で割ってメートル単位の深度を得て、値0は std::numeric_limits<float>::quiet_NaN() に変換される。そうでない場合は、画像は単に float に変換される

引数
in深度画像(short int CV_U として与えられた場合はミリメートル単位の深度とみなされる(Microsoft Kinect で行われるように)。それ以外はメートル単位とみなされる)
type希望する出力ビット深度(CV_32F または CV_64F)
out再スケールされたfloat型の深度画像
depth_factor(省略可能)深度を距離に変換する係数(デフォルトは Kinect センサー用の 1000.0)

◆ warpFrame()

void cv::warpFrame ( InputArray depth,
InputArray image,
InputArray mask,
InputArray Rt,
InputArray cameraMatrix,
OutputArray warpedDepth = noArray(),
OutputArray warpedImage = noArray(),
OutputArray warpedMask = noArray() )
Python:
cv.warpFrame(depth, image, mask, Rt, cameraMatrix[, warpedDepth[, warpedImage[, warpedMask]]]) -> warpedDepth, warpedImage, warpedMask

#include <opencv2/ptcloud/depth.hpp>

深度画像またはRGB-D画像を3D空間に再投影し、Rt変換を適用してから画像平面に投影し直すことでワープする。この関数は Odometry アルゴリズムの結果を可視化するために使用できる。

引数
depth深度データ。1チャンネルの CV_16U、CV_16S、CV_32F または CV_64F である必要がある
imageRGB画像(省略可能)。1、3、または4チャンネルの CV_8U である必要がある
mask使用するピクセルのマスク(省略可能)。CV_8UC1、CV_8SC1 または CV_BoolC1 である必要がある
Rt深度点に適用する回転+並進行列(3x4 または 4x4)
cameraMatrixカメラ内部行列(3x3)
warpedDepthワープされた深度データ(省略可能)
warpedImageワープされたRGB画像(省略可能)
warpedMaskワープされた画像内の有効なピクセルのマスク(省略可能)