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

詳細説明

クラス

struct  cv::Accumulator< T >
 
struct  cv::Accumulator< char >
 
struct  cv::Accumulator< short >
 
struct  cv::Accumulator< unsigned char >
 
struct  cv::Accumulator< unsigned short >
 
class  cv::AffineFeature
 検出器および抽出器をアフィン不変にするラッパーを実装するためのクラス。[321] で ASIFT として説明されている。 続き...
 
class  cv::ALIKED
 ALIKED 特徴検出器および記述子抽出器。 続き...
 
class  cv::DISK
 DNN モデルに基づく DISK 特徴検出器および記述子。 続き...
 
class  cv::FastFeatureDetector
 FAST 法を用いた特徴検出のためのラッパークラス。 続き...
 
class  cv::Feature2D
 2D画像特徴検出器および記述子抽出器のための抽象基底クラス。 続きを読む...
 
class  cv::GFTTDetector
 goodFeaturesToTrack関数を用いた特徴検出のためのラッパークラス。: 続きを読む...
 
class  cv::KeyPointsFilter
 キーポイントのベクトルをフィルタリングするクラス。 続きを読む...
 
struct  cv::L1< T >
 
struct  cv::L2< T >
 
class  cv::MSER
 最大安定極値領域 (MSER) 抽出器。 続きを読む...
 
class  cv::ORB
 ORB (oriented BRIEF) キーポイント検出器および記述子抽出器を実装したクラス。 続きを読む...
 
class  cv::SIFT
 D. Lowe による Scale Invariant Feature Transform (SIFT) アルゴリズム [180] を用いて、キーポイントの抽出と記述子の計算を行うクラス。 続き...
 
class  cv::SimpleBlobDetector
 画像からブロブを抽出するためのクラス。: 続きを読む...
 
struct  cv::SL2< T >
 

型定義

typedef AffineFeature cv::AffineDescriptorExtractor
 
typedef AffineFeature cv::AffineFeatureDetector
 
typedef Feature2D cv::DescriptorExtractor
 
typedef Feature2D cv::FeatureDetector
 
typedef SIFT cv::SiftDescriptorExtractor
 
typedef SIFT cv::SiftFeatureDetector
 

関数

void cv::computeRecallPrecisionCurve (const std::vector< std::vector< DMatch > > &matches1to2, const std::vector< std::vector< uchar > > &correctMatches1to2Mask, std::vector< Point2f > &recallPrecisionCurve)
 
void cv::evaluateFeatureDetector (const Mat &img1, const Mat &img2, const Mat &H1to2, std::vector< KeyPoint > *keypoints1, std::vector< KeyPoint > *keypoints2, float &repeatability, int &correspCount, const Ptr< FeatureDetector > &fdetector=Ptr< FeatureDetector >())
 
void cv::FAST (InputArray image, std::vector< KeyPoint > &keypoints, int threshold, bool nonmaxSuppression=true, FastFeatureDetector::DetectorType type=FastFeatureDetector::TYPE_9_16)
 FASTアルゴリズムを用いてコーナーを検出する。
 
int cv::getNearestPoint (const std::vector< Point2f > &recallPrecisionCurve, float l_precision)
 
float cv::getRecall (const std::vector< Point2f > &recallPrecisionCurve, float l_precision)
 
void cv::goodFeaturesToTrack (InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask, int blockSize, int gradientSize, bool useHarrisDetector=false, double k=0.04)
 
void cv::goodFeaturesToTrack (InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask, OutputArray cornersQuality, int blockSize=3, int gradientSize=3, bool useHarrisDetector=false, double k=0.04)
 上と同じだが、検出されたコーナーの品質指標も返す。
 
void cv::goodFeaturesToTrack (InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask=noArray(), int blockSize=3, bool useHarrisDetector=false, double k=0.04)
 画像上の強いコーナーを決定する。
 

型定義詳解

◆ AffineDescriptorExtractor

◆ AffineFeatureDetector

◆ DescriptorExtractor

#include <opencv2/features.hpp>

OpenCVのキーポイント記述子の抽出器には共通インターフェースを持つラッパーがあり、同じ問題を解くさまざまなアルゴリズムを簡単に切り替えられる。このセクションは、多次元空間内のベクトルとして表現される記述子の計算に充てられている。ベクトル記述子の抽出器を実装するすべてのオブジェクトは、DescriptorExtractor インターフェースを継承する。

◆ FeatureDetector

#include <opencv2/features.hpp>

OpenCVの特徴検出器には共通インターフェースを持つラッパーがあり、同じ問題を解くさまざまなアルゴリズムを簡単に切り替えられる。キーポイント検出器を実装するすべてのオブジェクトは、FeatureDetector インターフェースを継承する。

◆ SiftDescriptorExtractor

◆ SiftFeatureDetector

関数詳解

◆ computeRecallPrecisionCurve()

void cv::computeRecallPrecisionCurve ( const std::vector< std::vector< DMatch > > & matches1to2,
const std::vector< std::vector< uchar > > & correctMatches1to2Mask,
std::vector< Point2f > & recallPrecisionCurve )

◆ evaluateFeatureDetector()

void cv::evaluateFeatureDetector ( const Mat & img1,
const Mat & img2,
const Mat & H1to2,
std::vector< KeyPoint > * keypoints1,
std::vector< KeyPoint > * keypoints2,
float & repeatability,
int & correspCount,
const Ptr< FeatureDetector > & fdetector = PtrFeatureDetector >() )

◆ FAST()

void cv::FAST ( InputArray image,
std::vector< KeyPoint > & keypoints,
int threshold,
bool nonmaxSuppression = true,
FastFeatureDetector::DetectorType type = FastFeatureDetector::TYPE_9_16 )

#include <opencv2/features.hpp>

FASTアルゴリズムを使用してコーナーを検出する。

引数
imageキーポイント(コーナー)を検出する対象のグレースケール画像。
keypoints画像上で検出されたキーポイント。
threshold中心ピクセルと、その周囲の円上のピクセルとの強度差に対するしきい値。
nonmaxSuppressiontrue の場合、検出されたキーポイント(コーナー)に対して非最大抑制が適用される。
type論文で定義されている3つの近傍のうちの1つ: FastFeatureDetector::TYPE_9_16, FastFeatureDetector::TYPE_7_12, FastFeatureDetector::TYPE_5_8

[236] によるFASTアルゴリズムを用いてコーナーを検出する。

詳細については 対応するチュートリアル を参照。

◆ getNearestPoint()

int cv::getNearestPoint ( const std::vector< Point2f > & recallPrecisionCurve,
float l_precision )

◆ getRecall()

float cv::getRecall ( const std::vector< Point2f > & recallPrecisionCurve,
float l_precision )

◆ goodFeaturesToTrack() [1/3]

void cv::goodFeaturesToTrack ( InputArray image,
OutputArray corners,
int maxCorners,
double qualityLevel,
double minDistance,
InputArray mask,
int blockSize,
int gradientSize,
bool useHarrisDetector = false,
double k = 0.04 )
Python:
cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners
cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners
cv.goodFeaturesToTrackWithQuality(image, maxCorners, qualityLevel, minDistance, mask[, corners[, cornersQuality[, blockSize[, gradientSize[, useHarrisDetector[, k]]]]]]) -> corners, cornersQuality

◆ goodFeaturesToTrack() [2/3]

void cv::goodFeaturesToTrack ( InputArray image,
OutputArray corners,
int maxCorners,
double qualityLevel,
double minDistance,
InputArray mask,
OutputArray cornersQuality,
int blockSize = 3,
int gradientSize = 3,
bool useHarrisDetector = false,
double k = 0.04 )
Python:
cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners
cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners
cv.goodFeaturesToTrackWithQuality(image, maxCorners, qualityLevel, minDistance, mask[, corners[, cornersQuality[, blockSize[, gradientSize[, useHarrisDetector[, k]]]]]]) -> corners, cornersQuality

#include <opencv2/features.hpp>

上記と同じだが、検出されたコーナーの品質指標も返す。

引数
image8ビットまたは浮動小数点32ビットのシングルチャンネル入力画像。
corners検出されたコーナーの出力ベクトル。
maxCorners返すコーナーの最大数。見つかったコーナーがこの数より多い場合、最も強いものが返される。maxCorners <= 0 は最大数に上限を設けないことを意味し、検出されたすべてのコーナーが返される。
qualityLevel画像のコーナーの最低許容品質を特徴づける引数。この引数値は最良のコーナー品質尺度(最小固有値(cornerMinEigenVal を参照)または Harris 関数の応答(cornerHarris を参照))に乗算される。品質尺度がこの積より小さいコーナーは棄却される。例えば、最良のコーナーの品質尺度が1500で qualityLevel=0.01 の場合、品質尺度が15未満のすべてのコーナーが棄却される。
minDistance返されるコーナー間の最小ユークリッド距離。
mask対象領域 (ROI)。画像が空でない場合(型は CV_8UC1 で image と同じサイズである必要がある)、コーナーを検出する領域を指定する。
cornersQuality検出されたコーナーの品質指標の出力ベクトル。
blockSize各ピクセル近傍にわたって微分共変行列を計算するための平均化ブロックのサイズ。cornerEigenValsAndVecs を参照。
gradientSize微分計算に使用するSobel演算子の開口パラメータ。cornerEigenValsAndVecs を参照。
useHarrisDetectorHarris 検出器(cornerHarris を参照)を使うか、cornerMinEigenVal を使うかを示す引数。
kHarris 検出器の自由パラメータ。

◆ goodFeaturesToTrack() [3/3]

void cv::goodFeaturesToTrack ( InputArray image,
OutputArray corners,
int maxCorners,
double qualityLevel,
double minDistance,
InputArray mask = noArray(),
int blockSize = 3,
bool useHarrisDetector = false,
double k = 0.04 )
Python:
cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners
cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners
cv.goodFeaturesToTrackWithQuality(image, maxCorners, qualityLevel, minDistance, mask[, corners[, cornersQuality[, blockSize[, gradientSize[, useHarrisDetector[, k]]]]]]) -> corners, cornersQuality

#include <opencv2/features.hpp>

画像上の強いコーナーを決定する。

この関数は、[254] に記載されているように、画像または指定された画像領域の中で最も顕著なコーナーを見つける

  • 関数は cornerMinEigenVal または cornerHarris を用いて、ソース画像の各ピクセルでコーナー品質尺度を計算する。
  • 関数は非最大抑制を行う(3 x 3 近傍内の局所最大値が保持される)。
  • 最小固有値が \(\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\) 未満のコーナーは棄却される。
  • 残りのコーナーは品質尺度の降順でソートされる。
  • 関数は、maxDistance より近い距離により強いコーナーが存在する各コーナーを破棄する。

この関数は、オブジェクトの点ベースのトラッカーを初期化するために使える。

覚え書き
引数 qualityLevel の異なる値 A と B(A > B)で関数を呼び出した場合、qualityLevel=A で返されるコーナーのベクトルは、qualityLevel=B での出力ベクトルの先頭部分(プレフィックス)となる。
引数
image8ビットまたは浮動小数点32ビットのシングルチャンネル入力画像。
corners検出されたコーナーの出力ベクトル。
maxCorners返すコーナーの最大数。見つかったコーナーがこの数より多い場合、最も強いものが返される。maxCorners <= 0 は最大数に上限を設けないことを意味し、検出されたすべてのコーナーが返される。
qualityLevel画像のコーナーの最低許容品質を特徴づける引数。この引数値は最良のコーナー品質尺度(最小固有値(cornerMinEigenVal を参照)または Harris 関数の応答(cornerHarris を参照))に乗算される。品質尺度がこの積より小さいコーナーは棄却される。例えば、最良のコーナーの品質尺度が1500で qualityLevel=0.01 の場合、品質尺度が15未満のすべてのコーナーが棄却される。
minDistance返されるコーナー間の最小ユークリッド距離。
mask省略可能な関心領域 (ROI)。画像が空でない場合(型が CV_8UC1 で image と同じサイズである必要がある)、コーナーを検出する領域を指定する。
blockSize各ピクセル近傍にわたって微分共変行列を計算するための平均化ブロックのサイズ。cornerEigenValsAndVecs を参照。
useHarrisDetectorHarris 検出器(cornerHarris を参照)を使うか、cornerMinEigenVal を使うかを示す引数。
kHarris 検出器の自由パラメータ。
参照
cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,