此類使用 D. Lowe [176] 的尺度不變特徵變換(SIFT)演算法提取關鍵點並計算描述符。 更多...
#include <opencv2/features2d.hpp>
|
| virtual double | getContrastThreshold () const =0 |
| |
| virtual String | getDefaultName () const CV_OVERRIDE |
| |
| virtual double | getEdgeThreshold () const =0 |
| |
| virtual int | getNFeatures () const =0 |
| |
| virtual int | getNOctaveLayers () const =0 |
| |
| virtual double | getSigma () const =0 |
| |
| virtual void | setContrastThreshold (double contrastThreshold)=0 |
| |
| virtual void | setEdgeThreshold (double edgeThreshold)=0 |
| |
| virtual void | setNFeatures (int maxFeatures)=0 |
| |
| virtual void | setNOctaveLayers (int nOctaveLayers)=0 |
| |
| virtual void | setSigma (double sigma)=0 |
| |
| virtual | ~Feature2D () |
| |
| virtual void | compute (InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors) |
| | 計算影像(第一種變體)或影像集(第二種變體)中檢測到的一組關鍵點的描述符。
|
| |
| virtual void | compute (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors) |
| |
| virtual int | defaultNorm () const |
| |
| virtual int | descriptorSize () const |
| |
| virtual int | descriptorType () const |
| |
| virtual void | detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray()) |
| | 檢測影像(第一種變體)或影像集(第二種變體)中的關鍵點。
|
| |
| virtual void | detect (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray()) |
| |
| virtual void | detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false) |
| |
| virtual bool | empty () const CV_OVERRIDE |
| | 如果檢測器物件為空,則返回 true。
|
| |
| virtual void | read (const FileNode &) CV_OVERRIDE |
| | 從檔案儲存中讀取演算法引數。
|
| |
| void | read (const String &fileName) |
| |
| void | write (const Ptr< FileStorage > &fs, const String &name) const |
| |
| void | write (const String &fileName) const |
| |
| virtual void | write (FileStorage &) const CV_OVERRIDE |
| | 將演算法引數儲存到檔案儲存中。
|
| |
| void | write (FileStorage &fs, const String &name) const |
| |
| | Algorithm () |
| |
| virtual | ~Algorithm () |
| |
| virtual void | clear () |
| | 清除演算法狀態。
|
| |
| virtual void | save (const String &filename) const |
| |
| void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
| |
| void | write (FileStorage &fs, const String &name) const |
| |
|
| static Ptr< SIFT > | create (int nfeatures, int nOctaveLayers, double contrastThreshold, double edgeThreshold, double sigma, int descriptorType, bool enable_precise_upscale=false) |
| | 建立具有指定 `descriptorType` 的 SIFT。
|
| |
| static Ptr< SIFT > | create (int nfeatures=0, int nOctaveLayers=3, double contrastThreshold=0.04, double edgeThreshold=10, double sigma=1.6, bool enable_precise_upscale=false) |
| |
| template<typename _Tp > |
| static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
| | 從檔案中載入演算法。
|
| |
| template<typename _Tp > |
| static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
| | 從字串載入演算法。
|
| |
| template<typename _Tp > |
| static Ptr< _Tp > | read (const FileNode &fn) |
| | 從檔案節點讀取演算法。
|
| |
此類使用 D. Lowe [176] 的尺度不變特徵變換(SIFT)演算法提取關鍵點並計算描述符。
◆ create() [1/2]
| static Ptr< SIFT > cv::SIFT::create |
( |
int | nfeatures, |
|
|
int | nOctaveLayers, |
|
|
double | contrastThreshold, |
|
|
double | edgeThreshold, |
|
|
double | sigma, |
|
|
int | descriptorType, |
|
|
bool | enable_precise_upscale = false ) |
|
static |
| Python |
|---|
| cv.SIFT.create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT.create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
| cv.SIFT_create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT_create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
建立具有指定 `descriptorType` 的 SIFT。
- 引數
-
| nfeatures | 要保留的最佳特徵數。特徵按其分數(在 SIFT 演算法中以區域性對比度衡量)進行排名 |
| nOctaveLayers | 每個八度中的層數。3 是 D. Lowe 論文中使用的值。八度數根據影像解析度自動計算。 |
| contrastThreshold | 用於過濾掉半均勻(低對比度)區域中弱特徵的對比度閾值。閾值越大,檢測器生成的特徵越少。 |
- 注意
- 應用過濾時,對比度閾值將除以 `nOctaveLayers`。當 `nOctaveLayers` 設定為預設值且您想使用 D. Lowe 論文中使用的值 0.03 時,請將此引數設定為 0.09。
- 引數
-
| edgeThreshold | 用於過濾掉邊緣狀特徵的閾值。請注意,其含義與 `contrastThreshold` 不同,即 `edgeThreshold` 越大,過濾掉的特徵越少(保留的特徵越多)。 |
| sigma | 應用於八度 #0 輸入影像的高斯 σ 值。如果您的影像是用弱相機和軟鏡頭拍攝的,您可能需要減小此值。 |
| descriptorType | 描述符的型別。僅支援 CV_32F 和 CV_8U。 |
| enable_precise_upscale | 是否啟用尺度金字塔中的精確上取樣,該取樣將索引 \(\texttt{x}\) 對映到 \(\texttt{2x}\)。這可以防止定位偏差。預設情況下停用此選項。 |
◆ create() [2/2]
| static Ptr< SIFT > cv::SIFT::create |
( |
int | nfeatures = 0, |
|
|
int | nOctaveLayers = 3, |
|
|
double | contrastThreshold = 0.04, |
|
|
double | edgeThreshold = 10, |
|
|
double | sigma = 1.6, |
|
|
bool | enable_precise_upscale = false ) |
|
static |
| Python |
|---|
| cv.SIFT.create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT.create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
| cv.SIFT_create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT_create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
- 引數
-
| nfeatures | 要保留的最佳特徵數。特徵按其分數(在 SIFT 演算法中以區域性對比度衡量)進行排名 |
| nOctaveLayers | 每個八度中的層數。3 是 D. Lowe 論文中使用的值。八度數根據影像解析度自動計算。 |
| contrastThreshold | 用於過濾掉半均勻(低對比度)區域中弱特徵的對比度閾值。閾值越大,檢測器生成的特徵越少。 |
- 注意
- 應用過濾時,對比度閾值將除以 `nOctaveLayers`。當 `nOctaveLayers` 設定為預設值且您想使用 D. Lowe 論文中使用的值 0.03 時,請將此引數設定為 0.09。
- 引數
-
| edgeThreshold | 用於過濾掉邊緣狀特徵的閾值。請注意,其含義與 `contrastThreshold` 不同,即 `edgeThreshold` 越大,過濾掉的特徵越少(保留的特徵越多)。 |
| sigma | 應用於八度 #0 輸入影像的高斯 σ 值。如果您的影像是用弱相機和軟鏡頭拍攝的,您可能需要減小此值。 |
| enable_precise_upscale | 是否啟用尺度金字塔中的精確上取樣,該取樣將索引 \(\texttt{x}\) 對映到 \(\texttt{2x}\)。這可以防止定位偏差。預設情況下停用此選項。 |
◆ getContrastThreshold()
| virtual double cv::SIFT::getContrastThreshold |
( |
| ) |
const |
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.getContrastThreshold( | | ) -> | retval |
◆ getDefaultName()
| virtual String cv::SIFT::getDefaultName |
( |
| ) |
const |
|
virtual |
| Python |
|---|
| cv.SIFT.getDefaultName( | | ) -> | retval |
返回演算法字串識別符號。當物件儲存到檔案或字串時,此字串用作頂層 xml/yml 節點標籤。
重新實現自 cv::Feature2D。
◆ getEdgeThreshold()
| virtual double cv::SIFT::getEdgeThreshold |
( |
| ) |
const |
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.getEdgeThreshold( | | ) -> | retval |
◆ getNFeatures()
| virtual int cv::SIFT::getNFeatures |
( |
| ) |
const |
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.getNFeatures( | | ) -> | retval |
◆ getNOctaveLayers()
| virtual int cv::SIFT::getNOctaveLayers |
( |
| ) |
const |
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.getNOctaveLayers( | | ) -> | retval |
◆ getSigma()
| virtual double cv::SIFT::getSigma |
( |
| ) |
const |
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.getSigma( | | ) -> | retval |
◆ setContrastThreshold()
| virtual void cv::SIFT::setContrastThreshold |
( |
double | contrastThreshold | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.setContrastThreshold( | contrastThreshold | ) -> | 無 |
◆ setEdgeThreshold()
| virtual void cv::SIFT::setEdgeThreshold |
( |
double | edgeThreshold | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.setEdgeThreshold( | edgeThreshold | ) -> | 無 |
◆ setNFeatures()
| virtual void cv::SIFT::setNFeatures |
( |
int | maxFeatures | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.setNFeatures( | maxFeatures | ) -> | 無 |
◆ setNOctaveLayers()
| virtual void cv::SIFT::setNOctaveLayers |
( |
int | nOctaveLayers | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.setNOctaveLayers( | nOctaveLayers | ) -> | 無 |
◆ setSigma()
| virtual void cv::SIFT::setSigma |
( |
double | sigma | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.SIFT.setSigma( | sigma | ) -> | 無 |
此類的文件生成自以下檔案