Struct opencv::features2d::SIFT
source · pub struct SIFT { /* private fields */ }
Expand description
Class for extracting keypoints and computing descriptors using the Scale Invariant Feature Transform (SIFT) algorithm by D. Lowe Lowe04 .
Implementations§
source§impl SIFT
impl SIFT
sourcepub fn create(
nfeatures: i32,
n_octave_layers: i32,
contrast_threshold: f64,
edge_threshold: f64,
sigma: f64,
enable_precise_upscale: bool
) -> Result<Ptr<SIFT>>
pub fn create( nfeatures: i32, n_octave_layers: i32, contrast_threshold: f64, edge_threshold: f64, sigma: f64, enable_precise_upscale: bool ) -> Result<Ptr<SIFT>>
§Parameters
-
nfeatures: The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast)
-
nOctaveLayers: The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.
-
contrastThreshold: The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.
Note: The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set this argument to 0.09.
-
edgeThreshold: The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).
-
sigma: The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.
-
enable_precise_upscale: Whether to enable precise upscaling in the scale pyramid, which maps index to . This prevents localization bias. The option is disabled by default.
§C++ default parameters
- nfeatures: 0
- n_octave_layers: 3
- contrast_threshold: 0.04
- edge_threshold: 10
- sigma: 1.6
- enable_precise_upscale: false
sourcepub fn create_def() -> Result<Ptr<SIFT>>
pub fn create_def() -> Result<Ptr<SIFT>>
§Parameters
-
nfeatures: The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast)
-
nOctaveLayers: The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.
-
contrastThreshold: The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.
Note: The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set this argument to 0.09.
-
edgeThreshold: The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).
-
sigma: The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.
-
enable_precise_upscale: Whether to enable precise upscaling in the scale pyramid, which maps index to . This prevents localization bias. The option is disabled by default.
§Note
This alternative version of SIFT::create function uses the following default values for its arguments:
- nfeatures: 0
- n_octave_layers: 3
- contrast_threshold: 0.04
- edge_threshold: 10
- sigma: 1.6
- enable_precise_upscale: false
sourcepub fn create_with_descriptor_type(
nfeatures: i32,
n_octave_layers: i32,
contrast_threshold: f64,
edge_threshold: f64,
sigma: f64,
descriptor_type: i32,
enable_precise_upscale: bool
) -> Result<Ptr<SIFT>>
pub fn create_with_descriptor_type( nfeatures: i32, n_octave_layers: i32, contrast_threshold: f64, edge_threshold: f64, sigma: f64, descriptor_type: i32, enable_precise_upscale: bool ) -> Result<Ptr<SIFT>>
Create SIFT with specified descriptorType.
§Parameters
-
nfeatures: The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast)
-
nOctaveLayers: The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.
-
contrastThreshold: The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.
Note: The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set this argument to 0.09.
-
edgeThreshold: The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).
-
sigma: The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.
-
descriptorType: The type of descriptors. Only CV_32F and CV_8U are supported.
-
enable_precise_upscale: Whether to enable precise upscaling in the scale pyramid, which maps index to . This prevents localization bias. The option is disabled by default.
§C++ default parameters
- enable_precise_upscale: false
sourcepub fn create_with_descriptor_type_def(
nfeatures: i32,
n_octave_layers: i32,
contrast_threshold: f64,
edge_threshold: f64,
sigma: f64,
descriptor_type: i32
) -> Result<Ptr<SIFT>>
pub fn create_with_descriptor_type_def( nfeatures: i32, n_octave_layers: i32, contrast_threshold: f64, edge_threshold: f64, sigma: f64, descriptor_type: i32 ) -> Result<Ptr<SIFT>>
Create SIFT with specified descriptorType.
§Parameters
-
nfeatures: The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast)
-
nOctaveLayers: The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.
-
contrastThreshold: The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.
Note: The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set this argument to 0.09.
-
edgeThreshold: The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).
-
sigma: The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.
-
descriptorType: The type of descriptors. Only CV_32F and CV_8U are supported.
-
enable_precise_upscale: Whether to enable precise upscaling in the scale pyramid, which maps index to . This prevents localization bias. The option is disabled by default.
§Note
This alternative version of SIFT::create_with_descriptor_type function uses the following default values for its arguments:
- enable_precise_upscale: false
Trait Implementations§
source§impl AlgorithmTrait for SIFT
impl AlgorithmTrait for SIFT
source§impl AlgorithmTraitConst for SIFT
impl AlgorithmTraitConst for SIFT
fn as_raw_Algorithm(&self) -> *const c_void
source§fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
source§fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
source§fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>
fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>
source§fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>
fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>
§Note
source§fn empty(&self) -> Result<bool>
fn empty(&self) -> Result<bool>
source§fn save(&self, filename: &str) -> Result<()>
fn save(&self, filename: &str) -> Result<()>
source§fn get_default_name(&self) -> Result<String>
fn get_default_name(&self) -> Result<String>
source§impl Boxed for SIFT
impl Boxed for SIFT
source§unsafe fn from_raw(ptr: <SIFT as OpenCVFromExtern>::ExternReceive) -> Self
unsafe fn from_raw(ptr: <SIFT as OpenCVFromExtern>::ExternReceive) -> Self
source§fn into_raw(self) -> <SIFT as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <SIFT as OpenCVTypeExternContainer>::ExternSendMut
source§fn as_raw(&self) -> <SIFT as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <SIFT as OpenCVTypeExternContainer>::ExternSend
source§fn as_raw_mut(&mut self) -> <SIFT as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut(&mut self) -> <SIFT as OpenCVTypeExternContainer>::ExternSendMut
source§impl Feature2DTrait for SIFT
impl Feature2DTrait for SIFT
fn as_raw_mut_Feature2D(&mut self) -> *mut c_void
source§fn detect(
&mut self,
image: &impl ToInputArray,
keypoints: &mut Vector<KeyPoint>,
mask: &impl ToInputArray
) -> Result<()>
fn detect( &mut self, image: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, mask: &impl ToInputArray ) -> Result<()>
source§fn detect_def(
&mut self,
image: &impl ToInputArray,
keypoints: &mut Vector<KeyPoint>
) -> Result<()>
fn detect_def( &mut self, image: &impl ToInputArray, keypoints: &mut Vector<KeyPoint> ) -> Result<()>
source§fn detect_multiple(
&mut self,
images: &impl ToInputArray,
keypoints: &mut Vector<Vector<KeyPoint>>,
masks: &impl ToInputArray
) -> Result<()>
fn detect_multiple( &mut self, images: &impl ToInputArray, keypoints: &mut Vector<Vector<KeyPoint>>, masks: &impl ToInputArray ) -> Result<()>
source§fn detect_multiple_def(
&mut self,
images: &impl ToInputArray,
keypoints: &mut Vector<Vector<KeyPoint>>
) -> Result<()>
fn detect_multiple_def( &mut self, images: &impl ToInputArray, keypoints: &mut Vector<Vector<KeyPoint>> ) -> Result<()>
source§fn compute(
&mut self,
image: &impl ToInputArray,
keypoints: &mut Vector<KeyPoint>,
descriptors: &mut impl ToOutputArray
) -> Result<()>
fn compute( &mut self, image: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, descriptors: &mut impl ToOutputArray ) -> Result<()>
source§fn compute_multiple(
&mut self,
images: &impl ToInputArray,
keypoints: &mut Vector<Vector<KeyPoint>>,
descriptors: &mut impl ToOutputArray
) -> Result<()>
fn compute_multiple( &mut self, images: &impl ToInputArray, keypoints: &mut Vector<Vector<KeyPoint>>, descriptors: &mut impl ToOutputArray ) -> Result<()>
source§fn detect_and_compute(
&mut self,
image: &impl ToInputArray,
mask: &impl ToInputArray,
keypoints: &mut Vector<KeyPoint>,
descriptors: &mut impl ToOutputArray,
use_provided_keypoints: bool
) -> Result<()>
fn detect_and_compute( &mut self, image: &impl ToInputArray, mask: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, descriptors: &mut impl ToOutputArray, use_provided_keypoints: bool ) -> Result<()>
source§fn detect_and_compute_def(
&mut self,
image: &impl ToInputArray,
mask: &impl ToInputArray,
keypoints: &mut Vector<KeyPoint>,
descriptors: &mut impl ToOutputArray
) -> Result<()>
fn detect_and_compute_def( &mut self, image: &impl ToInputArray, mask: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, descriptors: &mut impl ToOutputArray ) -> Result<()>
fn read(&mut self, file_name: &str) -> Result<()>
fn read_from_node(&mut self, unnamed: &impl FileNodeTraitConst) -> Result<()>
source§impl Feature2DTraitConst for SIFT
impl Feature2DTraitConst for SIFT
fn as_raw_Feature2D(&self) -> *const c_void
fn descriptor_size(&self) -> Result<i32>
fn descriptor_type(&self) -> Result<i32>
fn default_norm(&self) -> Result<i32>
fn write(&self, file_name: &str) -> Result<()>
fn write_to_storage(&self, unnamed: &mut impl FileStorageTrait) -> Result<()>
fn get_default_name(&self) -> Result<String>
fn write_to_storage_with_name( &self, fs: &mut impl FileStorageTrait, name: &str ) -> Result<()>
fn write_to_storage_ptr_with_name( &self, fs: &Ptr<FileStorage>, name: &str ) -> Result<()>
source§impl SIFTTrait for SIFT
impl SIFTTrait for SIFT
fn as_raw_mut_SIFT(&mut self) -> *mut c_void
fn set_n_features(&mut self, max_features: i32) -> Result<()>
fn set_n_octave_layers(&mut self, n_octave_layers: i32) -> Result<()>
fn set_contrast_threshold(&mut self, contrast_threshold: f64) -> Result<()>
fn set_edge_threshold(&mut self, edge_threshold: f64) -> Result<()>
fn set_sigma(&mut self, sigma: f64) -> Result<()>
source§impl SIFTTraitConst for SIFT
impl SIFTTraitConst for SIFT
fn as_raw_SIFT(&self) -> *const c_void
fn get_default_name(&self) -> Result<String>
fn get_n_features(&self) -> Result<i32>
fn get_n_octave_layers(&self) -> Result<i32>
fn get_contrast_threshold(&self) -> Result<f64>
fn get_edge_threshold(&self) -> Result<f64>
fn get_sigma(&self) -> Result<f64>
impl Send for SIFT
Auto Trait Implementations§
impl Freeze for SIFT
impl RefUnwindSafe for SIFT
impl !Sync for SIFT
impl Unpin for SIFT
impl UnwindSafe for SIFT
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res ) -> Res
Mat
or another similar object. By passing
a mutable reference to the Mat
to this function your closure will get called with the read reference and a write references
to the same Mat
. This is of course unsafe as it breaks the Rust aliasing rules, but it might be useful for some performance
sensitive operations. One example of an OpenCV function that allows such in-place modification is imgproc::threshold
. Read more