mirror of
https://github.com/kerberos-io/openalpr-base.git
synced 2025-10-07 04:50:54 +08:00
Tweaked binarize functions to do integer multiplication rather than float -- slightly faster
This commit is contained in:
@@ -42,7 +42,9 @@
|
|||||||
|
|
||||||
float calcLocalStats (Mat &im, Mat &map_m, Mat &map_s, int winx, int winy) {
|
float calcLocalStats (Mat &im, Mat &map_m, Mat &map_s, int winx, int winy) {
|
||||||
|
|
||||||
float m,s,max_s, sum, sum_sq, foo;
|
float m,s,max_s;
|
||||||
|
long sum, sum_sq;
|
||||||
|
uchar foo;
|
||||||
int wxh = winx/2;
|
int wxh = winx/2;
|
||||||
int wyh = winy/2;
|
int wyh = winy/2;
|
||||||
int x_firstth= wxh;
|
int x_firstth= wxh;
|
||||||
@@ -50,6 +52,7 @@ float calcLocalStats (Mat &im, Mat &map_m, Mat &map_s, int winx, int winy) {
|
|||||||
int y_firstth= wyh;
|
int y_firstth= wyh;
|
||||||
float winarea = winx*winy;
|
float winarea = winx*winy;
|
||||||
|
|
||||||
|
|
||||||
max_s = 0;
|
max_s = 0;
|
||||||
for (int j = y_firstth ; j<=y_lastth; j++)
|
for (int j = y_firstth ; j<=y_lastth; j++)
|
||||||
{
|
{
|
||||||
@@ -61,8 +64,8 @@ float calcLocalStats (Mat &im, Mat &map_m, Mat &map_s, int winx, int winy) {
|
|||||||
sum += foo;
|
sum += foo;
|
||||||
sum_sq += foo*foo;
|
sum_sq += foo*foo;
|
||||||
}
|
}
|
||||||
m = sum / winarea;
|
m = ((float)sum) / winarea;
|
||||||
s = sqrt ((sum_sq - (sum*sum)/winarea)/winarea);
|
s = sqrt ((((float)sum_sq) - ((float)(sum*sum))/winarea)/winarea);
|
||||||
if (s > max_s)
|
if (s > max_s)
|
||||||
max_s = s;
|
max_s = s;
|
||||||
map_m.fset(x_firstth, j, m);
|
map_m.fset(x_firstth, j, m);
|
||||||
@@ -80,8 +83,8 @@ float calcLocalStats (Mat &im, Mat &map_m, Mat &map_s, int winx, int winy) {
|
|||||||
sum += foo;
|
sum += foo;
|
||||||
sum_sq += foo*foo;
|
sum_sq += foo*foo;
|
||||||
}
|
}
|
||||||
m = sum / winarea;
|
m = ((float)sum) / winarea;
|
||||||
s = sqrt ((sum_sq - (sum*sum)/winarea)/winarea);
|
s = sqrt ((((float)sum_sq) - ((float) (sum*sum))/winarea)/winarea);
|
||||||
if (s > max_s)
|
if (s > max_s)
|
||||||
max_s = s;
|
max_s = s;
|
||||||
map_m.fset(i+wxh, j, m);
|
map_m.fset(i+wxh, j, m);
|
||||||
|
Reference in New Issue
Block a user