Commit 33f8b845c08e062fecfaaec790e8b181f2cdd669
1 parent
50ec8418
exposed more SIFT properties
Showing
1 changed file
with
21 additions
and
1 deletions
openbr/plugins/keypoint.cpp
| ... | ... | @@ -159,15 +159,35 @@ class SIFTDescriptorTransform : public UntrainableTransform |
| 159 | 159 | { |
| 160 | 160 | Q_OBJECT |
| 161 | 161 | Q_PROPERTY(int size READ get_size WRITE set_size RESET reset_size STORED false) |
| 162 | + Q_PROPERTY(QList<int> sizes READ get_sizes WRITE set_sizes RESET reset_sizes STORED false) | |
| 163 | + Q_PROPERTY(int nFeatures READ get_nFeatures WRITE set_nFeatures RESET reset_nFeatures STORED false) | |
| 164 | + Q_PROPERTY(int nOctaveLayers READ get_nOctaveLayers WRITE set_nOctaveLayers RESET reset_nOctaveLayers STORED false) | |
| 165 | + Q_PROPERTY(double contrastThreshold READ get_contrastThreshold WRITE set_contrastThreshold RESET reset_contrastThreshold STORED false) | |
| 166 | + Q_PROPERTY(double edgeThreshold READ get_edgeThreshold WRITE set_edgeThreshold RESET reset_edgeThreshold STORED false) | |
| 167 | + Q_PROPERTY(double sigma READ get_sigma WRITE set_sigma RESET reset_sigma STORED false) | |
| 162 | 168 | BR_PROPERTY(int, size, 1) |
| 169 | + BR_PROPERTY(QList<int>, sizes, QList<int>()) | |
| 170 | + BR_PROPERTY(int, nFeatures, 0) | |
| 171 | + BR_PROPERTY(int, nOctaveLayers, 3) | |
| 172 | + BR_PROPERTY(double, contrastThreshold, 0.04) | |
| 173 | + BR_PROPERTY(double, edgeThreshold, 10) | |
| 174 | + BR_PROPERTY(double, sigma, 1.6) | |
| 163 | 175 | |
| 164 | 176 | SIFT sift; |
| 165 | 177 | |
| 178 | + void init() | |
| 179 | + { | |
| 180 | + if (sizes.empty()) | |
| 181 | + sizes.append(size); | |
| 182 | + sift = SIFT(nFeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma); | |
| 183 | + } | |
| 184 | + | |
| 166 | 185 | void project(const Template &src, Template &dst) const |
| 167 | 186 | { |
| 168 | 187 | std::vector<KeyPoint> keyPoints; |
| 169 | 188 | foreach (const QPointF &val, src.file.points()) |
| 170 | - keyPoints.push_back(KeyPoint(val.x(), val.y(), size)); | |
| 189 | + foreach (const int r, sizes) | |
| 190 | + keyPoints.push_back(KeyPoint(val.x(), val.y(), r)); | |
| 171 | 191 | |
| 172 | 192 | Mat m; |
| 173 | 193 | sift(src, Mat(), keyPoints, m, true); | ... | ... |