11 typedef std::vector<cv::Rect> Rects;
16 typedef StatusInfo FeatureStatus;
18 const StatusInfo fsIndeterminate = todo;
19 const StatusInfo fsNegative = fail;
20 const StatusInfo fsGuessed = guessed;
21 const StatusInfo fsPositive = good;
22 const StatusInfo fsChanged = changed;
33 virtual void centerChanged(
Feature& feature) = 0;
34 void getScaledImage(
const cv::Mat& src, cv::Mat& dst);
36 double getScaleFactor()
const {
return scaleFactor_; };
37 double getScaleFactor(ExposureArrangement arrangement)
const {
38 switch (arrangement) {
39 case iPad_mini_3_zoom3_2:
42 case iPad_mini_3_zoom4_2:
45 case iPad_mini_4_zoom4_2:
50 case iPad_mini_3_front:
73 FeatureStatus status_;
75 virtual void _setCenter(
const cv::Point2f& center) = 0;
76 virtual void addOffset(
const cv::Point& offset) = 0;
77 inline double getScaleFactor()
const {
return container_ ? container_->scaleFactor_ : 1.0; };
79 virtual cv::Point2f getScaledCenter()
const = 0;
87 void setScaledCenter(
const cv::Point2f& center,
bool notifyContainer =
true);
88 inline void setContainer(
FeatureContainer* container) { container_ = container; };
95 inline bool found()
const {
return status_ == fsPositive; };
96 inline bool usable()
const {
return (status_ == fsPositive) || (status_ == fsGuessed); };
101 bool isChanged()
const {
return status_ == fsChanged; };
103 cv::Point2f getCenter()
const {
return getScaledCenter() * getScaleFactor(); };
112 inline void reset() { status_ = fsIndeterminate; };
113 inline FeatureStatus getStatus()
const {
return status_; };
114 inline void setStatus(
const FeatureStatus status) { status_ = status; };
126 friend class FrontalFixedMarksEvaluator;
133 void _setCenter(
const cv::Point2f& center) { center_ = center; };
134 void addOffset(
const cv::Point& offset) {
135 cv::Point2f offs = offset;
139 cv::Point2f getScaledCenter()
const {
return center_; };
140 inline float getScaledRadius()
const {
return radius_; };
141 inline void setScaledRadius(
const float radius) { radius_ = radius; };
142 inline void setScaledData(
const cv::Point2f& center,
const float radius,
143 const FeatureStatus status,
bool notifyContainer =
true)
153 inline float getRadius()
const {
return radius_ * getScaleFactor(); };
154 inline void setData(
const cv::Point2f& center,
const float radius,
155 const FeatureStatus status)
157 setScaledData(center * (1.0 / getScaleFactor()), radius / getScaleFactor(), status,
true);
170 MarkOrientation orientation_;
173 Mark(
const cv::Point2f& center,
const float radius = 0.0f,
174 const MarkOrientation orientation = moInvalid);
177 const FeatureStatus status,
bool notifyContainer =
true)
179 CircularFeature::setScaledData(data.center, data.radius, status, notifyContainer);
180 orientation_ = data.orientation;
183 MarkOrientation getOrientation()
const {
return orientation_; };
188 inline void setOrientation(
const MarkOrientation orientation) { orientation_ = orientation; };
192 data.center = getCenter();
193 data.radius = getRadius();
194 data.orientation = getOrientation();
198 inline void setData(
const MarkImageData& data,
const FeatureStatus status) {
199 setScaledData(data, status,
true);
203 inline const cv::Rect scaledRect(
const cv::Rect& rect,
double scaleFactor) {
204 return cv::Rect(rect.tl() * scaleFactor, rect.br() * scaleFactor);
220 void _setCenter(
const cv::Point2f& center);
221 void addOffset(
const cv::Point& offset) { area_ = area_ + offset; };
222 cv::Point2f getScaledCenter()
const {
return 0.5f * (area_.tl() + area_.br()); };
223 inline const cv::Rect& getScaledArea()
const {
return area_; };
224 inline void setScaledArea(
const cv::Rect& area) { area_ = area; };
227 inline const cv::Rect getArea()
const {
return scaledRect(area_, getScaleFactor()); };
void setCenter(const cv::Point2f ¢er)
Definition: features.h:108
Repräsentiert eine Marke des Meßaufsatzes (aka Meßbügel) im Bild.
Definition: features.h:168
beschreibt eine Visierbügelmarke
Definition: types.h:31
void setScaledCenter(const cv::Point2f ¢er, bool notifyContainer=true)
Setzt den Mittelpunkt relativ zum intern skalierten Bild.
Definition: features.cpp:27
Definition: front_features.h:20
void setOrientation(const MarkOrientation orientation)
Orientierung der schwarzen und weißen Felder in der Markenmitte.
Definition: features.h:188
Definition: features.h:68
bool found() const
Feature gefunden.
Definition: features.h:95
Definition: side_features.h:14
Definition: features.h:214
Definition: features.h:26
bool isChanged() const
Definition: features.h:101
Repräsentiert ein kreisförmiges Feature.
Definition: features.h:124