Changeset 17808


Ignore:
Timestamp:
05/08/14 13:21:44 (11 years ago)
Author:
tbretz
Message:
Added debug for caluclation time and removed the second loop from the image parameter calculation.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/www/viewer/index.js

    r17806 r17808  
    579579    if (rc.ret!==undefined && Array.isArray(rc.ret))
    580580    {
     581        var now = new Date();
     582
    581583        if (rc.ret[0] instanceof Object)
    582584            processCameraData(1, rc.ret[0]);
     
    592594        if (rc.ret.length>3)
    593595            processCameraData(4, rc.ret[3]);
     596
     597        debug("Calc Time = "+(new Date()-now)+" ms");
    594598    }
    595599
     
    14281432    var sz = 0;
    14291433
     1434    var mx2 = 0;
     1435    var my2 = 0;
     1436    var mxy = 0;
     1437
    14301438    var cnt = 0;
    14311439    for (var i=0; i<1440; i++)
     
    14341442            continue;
    14351443
    1436         sz += data[i];
    1437         mx += data[i] * coord[i][0];
    1438         my += data[i] * coord[i][1];
     1444        sz  += data[i];
     1445        mx  += data[i] * coord[i][0];
     1446        my  += data[i] * coord[i][1];
     1447
     1448        mx2 += data[i] * coord[i][0]*coord[i][0];
     1449        my2 += data[i] * coord[i][1]*coord[i][1];
     1450        mxy += data[i] * coord[i][0]*coord[i][1];
    14391451
    14401452        cnt++;
    14411453    }
    14421454
    1443     if (sz==0)
     1455    if (sz==0 || cnt<3)
    14441456        return;
    14451457
    1446     mx /= sz;
    1447     my /= sz;
    1448 
    1449     if (cnt<3)
    1450         return;
    1451 
    1452     var xx=0;
    1453     var xy=0;
    1454     var yy=0;
    1455 
    1456     for (var i=0; i<1440; i++)
    1457     {
    1458         if (data[i]===undefined)
    1459             continue;
    1460 
    1461         var dx = coord[i][0] - mx;
    1462         var dy = coord[i][1] - my;
    1463 
    1464         xx += data[i] * dx*dx;
    1465         xy += data[i] * dx*dy;
    1466         yy += data[i] * dy*dy;
    1467     }
    1468 
    1469     var d0    = yy - xx;
    1470     var d1    = xy*2;
    1471     var d2    = Math.sqrt(d0*d0 + d1*d1) + d0;
    1472 
    1473     var tand  = d2==0 ? 0 : d2 / d1;
    1474     var tand2 = tand*tand;
    1475 
    1476     var s2    = tand2+1;
    1477     var s     = Math.sqrt(s2);
     1458    var xx = mx2 - mx*mx/sz;
     1459    var yy = my2 - my*my/sz;
     1460    var xy = mxy - mx*my/sz;
     1461
     1462    var d0  = yy - xx;
     1463    var d1  = xy*2;
     1464    var d2  = Math.sqrt(d0*d0 + d1*d1) + d0;
    14781465
    14791466    var phi = 0;
     
    14871474    if (d1!=0 || d2==0)
    14881475    {
     1476        var tand  = d2==0 ? 0 : d2 / d1;
     1477        var tand2 = tand*tand;
     1478
     1479        var s2    = tand2+1;
     1480        var s     = Math.sqrt(s2);
     1481
    14891482        phi = Math.atan(tand)-Math.PI/2;
    14901483        cos = 1.0 /s;
     
    15001493
    15011494    return {
    1502         "mean":  [ mx, my ],
     1495        "mean":  [ mx/sz, my/sz ],
    15031496        "axis":  [ width, length ],
    15041497        "phi":   phi,
Note: See TracChangeset for help on using the changeset viewer.