mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Remove sqrt functions
This commit is contained in:
parent
60eb70183d
commit
facee324c8
@ -63,55 +63,13 @@ const uint8_t xyz_table[256]= {
|
||||
93.868573, 94.730654, 95.597335, 96.468625, 97.344529, 98.225055, 99.110210, 100.000000,
|
||||
};
|
||||
|
||||
uint16_t sqrt_q16(uint16_t a)
|
||||
{
|
||||
uint16_t op = a;
|
||||
uint16_t res = 0;
|
||||
uint16_t one = 1uL << 14;
|
||||
|
||||
while (one > op) {
|
||||
one >>= 2;
|
||||
}
|
||||
|
||||
while (one != 0) {
|
||||
if (op >= res + one) {
|
||||
op = op - (res + one);
|
||||
res = res + 2 * one;
|
||||
}
|
||||
res >>= 1;
|
||||
one >>= 2;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
uint32_t sqrt_q32(uint32_t a)
|
||||
{
|
||||
uint32_t op = a;
|
||||
uint32_t res = 0;
|
||||
uint32_t one = 1uL << 30;
|
||||
|
||||
while (one > op) {
|
||||
one >>= 2;
|
||||
}
|
||||
|
||||
while (one != 0) {
|
||||
if (op >= res + one) {
|
||||
op = op - (res + one);
|
||||
res = res + 2 * one;
|
||||
}
|
||||
res >>= 1;
|
||||
one >>= 2;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
uint16_t imlib_lab_distance(struct color *c0, struct color *c1)
|
||||
{
|
||||
uint16_t sum=0;
|
||||
sum += (c0->L - c1->L) * (c0->L - c1->L);
|
||||
sum += (c0->A - c1->A) * (c0->A - c1->A);
|
||||
sum += (c0->B - c1->B) * (c0->B - c1->B);
|
||||
return sqrt_q16(sum);
|
||||
return (uint16_t) sqrtf(sum);
|
||||
}
|
||||
|
||||
uint16_t imlib_rgb_distance(struct color *c0, struct color *c1)
|
||||
@ -120,7 +78,7 @@ uint16_t imlib_rgb_distance(struct color *c0, struct color *c1)
|
||||
sum += (c0->r - c1->r) * (c0->r - c1->r);
|
||||
sum += (c0->g - c1->g) * (c0->g - c1->g);
|
||||
sum += (c0->b - c1->b) * (c0->b - c1->b);
|
||||
return sqrt_q16(sum);
|
||||
return (uint16_t) sqrtf(sum);
|
||||
}
|
||||
|
||||
uint16_t imlib_hsv_distance(struct color *c0, struct color *c1)
|
||||
@ -129,7 +87,7 @@ uint16_t imlib_hsv_distance(struct color *c0, struct color *c1)
|
||||
sum += (c0->h - c1->h) * (c0->h - c1->h);
|
||||
sum += (c0->s - c1->s) * (c0->s - c1->s);
|
||||
sum += (c0->v - c1->v) * (c0->v - c1->v);
|
||||
return sqrt_q16(sum);
|
||||
return (uint16_t) sqrtf(sum);
|
||||
}
|
||||
|
||||
void imlib_rgb_to_lab(struct color *rgb, struct color *lab)
|
||||
|
||||
@ -152,11 +152,6 @@ typedef struct cascade {
|
||||
int8_t *rectangles_array;
|
||||
} cascade_t;
|
||||
|
||||
|
||||
/* sqrt functions */
|
||||
uint16_t sqrt_q16(uint16_t a);
|
||||
uint32_t sqrt_q32(uint32_t a);
|
||||
|
||||
/* Point functions */
|
||||
point_t *point_alloc(int x, int y);
|
||||
int point_equal(point_t *p1, point_t *p2);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user