00001 00021 #ifndef VIEW_PARAMS_WRAPPER_H_ 00022 #define VIEW_PARAMS_WRAPPER_H_ 00023 00024 #include <Eigen/Dense> 00025 #include <HalconCpp.h> 00026 #include <vector> 00027 00031 class ViewParamsWrapper 00032 { 00033 00034 private: 00035 00037 bool is_valid; 00038 00040 std::string rotation_type; 00041 00043 HalconCpp::HImage image; 00044 00046 HalconCpp::HImage originalImage; 00047 00049 int row1; 00050 00052 int column1; 00053 00055 int row2; 00056 00058 int column2; 00059 00061 Eigen::Vector3d axis1; 00062 00064 Eigen::Vector3d axis2; 00065 00067 Eigen::Vector3d orientation; 00068 00070 double axis1_angle; 00071 00073 double axis2_angle; 00074 00076 bool is_invertible; 00077 00079 double score_2D; 00080 00082 bool use_color; 00083 00085 int vertical_offset; 00086 00088 int horizontal_offset; 00089 00091 int depth; 00092 00094 int number_ferns; 00095 00097 int patch_size; 00098 00100 double min_scale; 00101 00103 double max_scale; 00104 00106 bool has_bounding_box; 00107 00109 std::vector<Eigen::Vector2i> box_corners; 00110 00111 00112 public: 00113 00119 ViewParamsWrapper(std::string rotation_type); 00120 00124 void setImage(HalconCpp::HImage image); 00125 void setOriginalImage(HalconCpp::HImage original_image); 00126 void setImageBounds(int row1, int column1, int row2, int column2); 00127 void setRotationType(std::string rotation_type); 00128 void setAxis1(Eigen::Vector3d axis1); 00129 void setAxis2(Eigen::Vector3d axis2); 00130 void setOrientation(Eigen::Vector3d orientation); 00131 void setAxis1Angle(double axis1_angle); 00132 void setAxis2Angle(double axis2_angle); 00133 void setIsInvertible(bool is_invertible); 00134 void setScore2D(double score_2D); 00135 void setUserColor(bool use_color); 00136 void setVerticalOffset(int vertical_offset); 00137 void setHorizontalOffset(int horizontal_offset); 00138 void setDepth(int depth); 00139 void setNumberFerns(int number_ferns); 00140 void setPatchSize(int patch_size); 00141 void setMinScale(double min_scale); 00142 void setMaxScale(double max_scale); 00143 void setIsValid(bool is_valid); 00144 void setHasBoundingBox(bool has_bounding_box = true); 00145 00151 void addBoxCorner(Eigen::Vector2i corner); 00152 00156 void clearBoundingBox(); 00157 00158 00162 HalconCpp::HImage getImage(); 00163 HalconCpp::HImage getOriginalImage(); 00164 int getRow1(); 00165 int getColumn1(); 00166 int getRow2(); 00167 int getColumn2(); 00168 std::string getRotationType(); 00169 Eigen::Vector3d getAxis1(); 00170 Eigen::Vector3d getAxis2(); 00171 Eigen::Vector3d getOrientation(); 00172 double getAxis1Angle(); 00173 double getAxis2Angle(); 00174 bool getIsInvertible(); 00175 double getScore2D(); 00176 bool getUseColor(); 00177 int getVerticalOffset(); 00178 int getHorizontalOffset(); 00179 int getDepth(); 00180 int getNumberFerns(); 00181 int getPatchSize(); 00182 double getMinScale(); 00183 double getMaxScale(); 00184 bool getIsValid(); 00185 bool getHasBoundingBox(); 00186 std::vector<Eigen::Vector2i> getBoxCorners(); 00187 00188 }; 00189 00190 00191 #endif //VIEW_PARAMS_WRAPPER_H_ 00192 00193 00194