Remove SCALE_FACTOR const

This commit is contained in:
iabdalkader 2014-09-12 11:49:52 +02:00
parent e898bbd15a
commit 065a3cb337

View File

@ -50,6 +50,7 @@
#undef PI #undef PI
#define PI (3.14159265f) #define PI (3.14159265f)
#define PI_2 (3.14159265f*2.0f)
#define kNB_SCALES (64) #define kNB_SCALES (64)
#define kNB_ORIENTATION (256) #define kNB_ORIENTATION (256)
@ -190,19 +191,20 @@ const static uint8_t DESCRIPTION_PAIRS[512][2] = {
// simply take average on a square patch, not even gaussian approx // simply take average on a square patch, not even gaussian approx
static uint8_t mean_intensity(image_t *image, i_image_t *i_image, static uint8_t mean_intensity(image_t *image, i_image_t *i_image, int kp_x, int kp_y, uint32_t rot, uint32_t point)
int kp_x, int kp_y, float scale_factor, uint32_t rot, uint32_t point)
{ {
int pidx = (point/6)%8; int pidx = (point/6)%8;
float alpha, beta, theta = 0; float alpha, beta, theta = 0;
theta = (float)rot*2.0f*PI/(float)kNB_ORIENTATION; // orientation of the pattern if (rot) {
theta = rot*PI_2/(float)kNB_ORIENTATION; // orientation of the pattern
}
beta = PI/n[pidx]*(pidx%2); // orientation offset so that groups of points on each circles are staggered beta = PI/n[pidx]*(pidx%2); // orientation offset so that groups of points on each circles are staggered
alpha = (float)(point%n[pidx])*2.0f*PI/(float)n[pidx]+beta+theta; alpha = (float)(point%n[pidx])*PI_2/(float)n[pidx]+beta+theta;
float px = radius[pidx] * arm_cos_f32(alpha) * scale_factor * PATTERN_SCALE; float px = radius[pidx] * PATTERN_SCALE * arm_cos_f32(alpha);
float py = radius[pidx] * arm_sin_f32(alpha) * scale_factor * PATTERN_SCALE; float py = radius[pidx] * PATTERN_SCALE * arm_sin_f32(alpha);
float psigma = sigma[pidx] * scale_factor * PATTERN_SCALE; float psigma = sigma[pidx] * PATTERN_SCALE;
// get point position in image // get point position in image
float xf = px+kp_x; float xf = px+kp_x;
@ -266,7 +268,7 @@ void freak_find_keypoints(image_t *image, kp_t *kpts, int kpts_size, bool orient
} else { } else {
// get the points intensity value in the un-rotated pattern // get the points intensity value in the un-rotated pattern
for (int i=kNB_POINTS; i--;) { for (int i=kNB_POINTS; i--;) {
pointsValue[i] = mean_intensity(image, &i_image, kpts[k].x, kpts[k].y, SCALE_FACTOR, 0, i); pointsValue[i] = mean_intensity(image, &i_image, kpts[k].x, kpts[k].y, 0, i);
} }
direction0 = 0; direction0 = 0;
@ -291,7 +293,7 @@ void freak_find_keypoints(image_t *image, kp_t *kpts, int kpts_size, bool orient
// extract descriptor at the computed orientation // extract descriptor at the computed orientation
for (int i=kNB_POINTS; i--;) { for (int i=kNB_POINTS; i--;) {
pointsValue[i] = mean_intensity(image, &i_image, kpts[k].x, kpts[k].y, SCALE_FACTOR, thetaIdx, i); pointsValue[i] = mean_intensity(image, &i_image, kpts[k].x, kpts[k].y, thetaIdx, i);
} }
for (int m=kNB_PAIRS; m--;) { for (int m=kNB_PAIRS; m--;) {
@ -335,7 +337,6 @@ int16_t *freak_match_keypoints(kp_t *kpts1, int kpts1_size, kp_t *kpts2, int kpt
} }
} }
if (dist < min_dist) { if (dist < min_dist) {
min_idx = y; min_idx = y;
min_dist = dist; min_dist = dist;