pub struct KeyPoint { /* private fields */ }
Expand description
Data structure for salient point detectors.
The class instance stores a keypoint, i.e. a point feature found by one of many available keypoint detectors, such as Harris corner detector, #FAST, %StarDetector, %SURF, %SIFT etc.
The keypoint is characterized by the 2D position, scale (proportional to the diameter of the neighborhood that needs to be taken into account), orientation and some other parameters. The keypoint neighborhood is then analyzed by another algorithm that builds a descriptor (usually represented as a feature vector). The keypoints representing the same object in different images can then be matched using %KDTree or another method.
Implementations§
Source§impl KeyPoint
impl KeyPoint
Sourcepub fn new_point(
pt: Point2f,
size: f32,
angle: f32,
response: f32,
octave: i32,
class_id: i32,
) -> Result<KeyPoint>
pub fn new_point( pt: Point2f, size: f32, angle: f32, response: f32, octave: i32, class_id: i32, ) -> Result<KeyPoint>
§Parameters
- pt: x & y coordinates of the keypoint
- size: keypoint diameter
- angle: keypoint orientation
- response: keypoint detector response on the keypoint (that is, strength of the keypoint)
- octave: pyramid octave in which the keypoint has been detected
- class_id: object id
§C++ default parameters
- angle: -1
- response: 0
- octave: 0
- class_id: -1
Sourcepub fn new_point_def(pt: Point2f, size: f32) -> Result<KeyPoint>
pub fn new_point_def(pt: Point2f, size: f32) -> Result<KeyPoint>
§Parameters
- pt: x & y coordinates of the keypoint
- size: keypoint diameter
- angle: keypoint orientation
- response: keypoint detector response on the keypoint (that is, strength of the keypoint)
- octave: pyramid octave in which the keypoint has been detected
- class_id: object id
§Note
This alternative version of [new_point] function uses the following default values for its arguments:
- angle: -1
- response: 0
- octave: 0
- class_id: -1
Sourcepub fn new_coords(
x: f32,
y: f32,
size: f32,
angle: f32,
response: f32,
octave: i32,
class_id: i32,
) -> Result<KeyPoint>
pub fn new_coords( x: f32, y: f32, size: f32, angle: f32, response: f32, octave: i32, class_id: i32, ) -> Result<KeyPoint>
§Parameters
- x: x-coordinate of the keypoint
- y: y-coordinate of the keypoint
- size: keypoint diameter
- angle: keypoint orientation
- response: keypoint detector response on the keypoint (that is, strength of the keypoint)
- octave: pyramid octave in which the keypoint has been detected
- class_id: object id
§C++ default parameters
- angle: -1
- response: 0
- octave: 0
- class_id: -1
Sourcepub fn new_coords_def(x: f32, y: f32, size: f32) -> Result<KeyPoint>
pub fn new_coords_def(x: f32, y: f32, size: f32) -> Result<KeyPoint>
§Parameters
- x: x-coordinate of the keypoint
- y: y-coordinate of the keypoint
- size: keypoint diameter
- angle: keypoint orientation
- response: keypoint detector response on the keypoint (that is, strength of the keypoint)
- octave: pyramid octave in which the keypoint has been detected
- class_id: object id
§Note
This alternative version of [new_coords] function uses the following default values for its arguments:
- angle: -1
- response: 0
- octave: 0
- class_id: -1
Sourcepub fn convert(
keypoints: &Vector<KeyPoint>,
points2f: &mut Vector<Point2f>,
keypoint_indexes: &Vector<i32>,
) -> Result<()>
pub fn convert( keypoints: &Vector<KeyPoint>, points2f: &mut Vector<Point2f>, keypoint_indexes: &Vector<i32>, ) -> Result<()>
This method converts vector of keypoints to vector of points or the reverse, where each keypoint is assigned the same size and the same orientation.
§Parameters
- keypoints: Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB
- points2f: Array of (x,y) coordinates of each keypoint
- keypointIndexes: Array of indexes of keypoints to be converted to points. (Acts like a mask to convert only specified keypoints)
§C++ default parameters
- keypoint_indexes: std::vector
()
Sourcepub fn convert_def(
keypoints: &Vector<KeyPoint>,
points2f: &mut Vector<Point2f>,
) -> Result<()>
pub fn convert_def( keypoints: &Vector<KeyPoint>, points2f: &mut Vector<Point2f>, ) -> Result<()>
This method converts vector of keypoints to vector of points or the reverse, where each keypoint is assigned the same size and the same orientation.
§Parameters
- keypoints: Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB
- points2f: Array of (x,y) coordinates of each keypoint
- keypointIndexes: Array of indexes of keypoints to be converted to points. (Acts like a mask to convert only specified keypoints)
§Note
This alternative version of KeyPoint::convert function uses the following default values for its arguments:
- keypoint_indexes: std::vector
()
Sourcepub fn convert_to(
points2f: &Vector<Point2f>,
keypoints: &mut Vector<KeyPoint>,
size: f32,
response: f32,
octave: i32,
class_id: i32,
) -> Result<()>
pub fn convert_to( points2f: &Vector<Point2f>, keypoints: &mut Vector<KeyPoint>, size: f32, response: f32, octave: i32, class_id: i32, ) -> Result<()>
This method converts vector of keypoints to vector of points or the reverse, where each keypoint is assigned the same size and the same orientation.
§Parameters
- keypoints: Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB
- points2f: Array of (x,y) coordinates of each keypoint
- keypointIndexes: Array of indexes of keypoints to be converted to points. (Acts like a mask to convert only specified keypoints)
§Overloaded parameters
- points2f: Array of (x,y) coordinates of each keypoint
- keypoints: Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB
- size: keypoint diameter
- response: keypoint detector response on the keypoint (that is, strength of the keypoint)
- octave: pyramid octave in which the keypoint has been detected
- class_id: object id
§C++ default parameters
- size: 1
- response: 1
- octave: 0
- class_id: -1
Sourcepub fn convert_to_def(
points2f: &Vector<Point2f>,
keypoints: &mut Vector<KeyPoint>,
) -> Result<()>
pub fn convert_to_def( points2f: &Vector<Point2f>, keypoints: &mut Vector<KeyPoint>, ) -> Result<()>
@overload
§Parameters
- points2f: Array of (x,y) coordinates of each keypoint
- keypoints: Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB
- size: keypoint diameter
- response: keypoint detector response on the keypoint (that is, strength of the keypoint)
- octave: pyramid octave in which the keypoint has been detected
- class_id: object id
§Note
This alternative version of KeyPoint::convert_to function uses the following default values for its arguments:
- size: 1
- response: 1
- octave: 0
- class_id: -1
Sourcepub fn overlap(
kp1: &impl KeyPointTraitConst,
kp2: &impl KeyPointTraitConst,
) -> Result<f32>
pub fn overlap( kp1: &impl KeyPointTraitConst, kp2: &impl KeyPointTraitConst, ) -> Result<f32>
This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint regions’ intersection and area of keypoint regions’ union (considering keypoint region as circle). If they don’t overlap, we get zero. If they coincide at same location with same size, we get 1.
§Parameters
- kp1: First keypoint
- kp2: Second keypoint
Trait Implementations§
Source§impl Boxed for KeyPoint
impl Boxed for KeyPoint
Source§unsafe fn from_raw(ptr: <KeyPoint as OpenCVFromExtern>::ExternReceive) -> Self
unsafe fn from_raw(ptr: <KeyPoint as OpenCVFromExtern>::ExternReceive) -> Self
Source§fn into_raw(self) -> <KeyPoint as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <KeyPoint as OpenCVTypeExternContainer>::ExternSendMut
Source§fn as_raw(&self) -> <KeyPoint as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <KeyPoint as OpenCVTypeExternContainer>::ExternSend
Source§fn as_raw_mut(
&mut self,
) -> <KeyPoint as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self, ) -> <KeyPoint as OpenCVTypeExternContainer>::ExternSendMut
Source§impl From<Elliptic_KeyPoint> for KeyPoint
impl From<Elliptic_KeyPoint> for KeyPoint
Source§fn from(s: Elliptic_KeyPoint) -> Self
fn from(s: Elliptic_KeyPoint) -> Self
Source§impl KeyPointTrait for KeyPoint
impl KeyPointTrait for KeyPoint
fn as_raw_mut_KeyPoint(&mut self) -> *mut c_void
Source§fn set_angle(&mut self, val: f32)
fn set_angle(&mut self, val: f32)
Source§fn set_response(&mut self, val: f32)
fn set_response(&mut self, val: f32)
Source§fn set_octave(&mut self, val: i32)
fn set_octave(&mut self, val: i32)
Source§fn set_class_id(&mut self, val: i32)
fn set_class_id(&mut self, val: i32)
Source§impl KeyPointTraitConst for KeyPoint
impl KeyPointTraitConst for KeyPoint
fn as_raw_KeyPoint(&self) -> *const c_void
Source§fn angle(&self) -> f32
fn angle(&self) -> f32
Source§fn response(&self) -> f32
fn response(&self) -> f32
Source§fn class_id(&self) -> i32
fn class_id(&self) -> i32
fn hash(&self) -> Result<size_t>
impl Send for KeyPoint
Auto Trait Implementations§
impl Freeze for KeyPoint
impl RefUnwindSafe for KeyPoint
impl !Sync for KeyPoint
impl Unpin for KeyPoint
impl UnwindSafe for KeyPoint
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 unsafe in a general case as it leads to having non-exclusive mutable access to the internal data,
but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place
modification is imgproc::threshold
. Read more