package org.opencv.features2d; import org.opencv.core.Point; /** * <p>Data structure for salient point detectors.</p> * * <p>coordinates of the keypoint</p> * * <p>diameter of the meaningful keypoint neighborhood <code></p> * * <p>// C++ code:</p> * * <p>computed orientation of the keypoint (-1 if not applicable). Its possible * values are in a range [0,360) degrees. It is measured relative to image * coordinate system (y-axis is directed downward), ie in clockwise.</p> * * <p>the response by which the most strong keypoints have been selected. Can be * used for further sorting or subsampling</p> * * <p>octave (pyramid layer) from which the keypoint has been extracted</p> * * <p>object id that can be used to clustered keypoints by an object they belong to</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint">org.opencv.features2d.KeyPoint</a> */ public class KeyPoint { /** * Coordinates of the keypoint. */ public Point pt; /** * Diameter of the useful keypoint adjacent area. */ public float size; /** * Computed orientation of the keypoint (-1 if not applicable). */ public float angle; /** * The response, by which the strongest keypoints have been selected. Can * be used for further sorting or subsampling. */ public float response; /** * Octave (pyramid layer), from which the keypoint has been extracted. */ public int octave; /** * Object ID, that can be used to cluster keypoints by an object they * belong to. */ public int class_id; /** * <p>The keypoint constructors</p> * * @param x x-coordinate of the keypoint * @param y y-coordinate of the keypoint * @param _size keypoint diameter * @param _angle keypoint orientation * @param _response keypoint detector response on the keypoint (that is, * strength of the keypoint) * @param _octave pyramid octave in which the keypoint has been detected * @param _class_id object id * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a> */ public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave, int _class_id) { pt = new Point(x, y); size = _size; angle = _angle; response = _response; octave = _octave; class_id = _class_id; } /** * <p>The keypoint constructors</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a> */ public KeyPoint() { this(0, 0, 0, -1, 0, 0, -1); } /** * <p>The keypoint constructors</p> * * @param x x-coordinate of the keypoint * @param y y-coordinate of the keypoint * @param _size keypoint diameter * @param _angle keypoint orientation * @param _response keypoint detector response on the keypoint (that is, * strength of the keypoint) * @param _octave pyramid octave in which the keypoint has been detected * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a> */ public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave) { this(x, y, _size, _angle, _response, _octave, -1); } /** * <p>The keypoint constructors</p> * * @param x x-coordinate of the keypoint * @param y y-coordinate of the keypoint * @param _size keypoint diameter * @param _angle keypoint orientation * @param _response keypoint detector response on the keypoint (that is, * strength of the keypoint) * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a> */ public KeyPoint(float x, float y, float _size, float _angle, float _response) { this(x, y, _size, _angle, _response, 0, -1); } /** * <p>The keypoint constructors</p> * * @param x x-coordinate of the keypoint * @param y y-coordinate of the keypoint * @param _size keypoint diameter * @param _angle keypoint orientation * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a> */ public KeyPoint(float x, float y, float _size, float _angle) { this(x, y, _size, _angle, 0, 0, -1); } /** * <p>The keypoint constructors</p> * * @param x x-coordinate of the keypoint * @param y y-coordinate of the keypoint * @param _size keypoint diameter * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint-keypoint">org.opencv.features2d.KeyPoint.KeyPoint</a> */ public KeyPoint(float x, float y, float _size) { this(x, y, _size, -1, 0, 0, -1); } @Override public String toString() { return "KeyPoint [pt=" + pt + ", size=" + size + ", angle=" + angle + ", response=" + response + ", octave=" + octave + ", class_id=" + class_id + "]"; } }