Show
Ignore:
Timestamp:
08/07/08 20:54:15 (5 months ago)
Author:
gyuque
Message:

detection from video

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/ashaardetect/trunk/cv/SumImage.as

    r17159 r17212  
    99 
    1010                private var mEqWinSize:CvSize = new CvSize(); 
     11                private var mEqArea:int; 
    1112                private var mEqX:int; 
    1213                private var mEqY:int; 
     
    1819                private var mData:Array; 
    1920                private var mSQData:Array; 
    20                 function SumImage(b:BitmapData) 
     21                function SumImage(b:BitmapData, make_sq:Boolean = true) 
    2122                { 
    2223                        mWidth  = b.width  + 1; 
    2324                        mHeight = b.height + 1; 
    2425 
    25                         mData        = new Array(mWidth*mHeight); 
    26                         mSQData      = new Array(mWidth*mHeight); 
     26                        mData = new Array(mWidth*mHeight); 
    2727 
    28                         for (var i:int = 0;i < mWidth;i++) 
    29                         { 
     28                        if (make_sq) 
     29                                mSQData = new Array(mWidth*mHeight); 
     30 
     31                        var i:int; 
     32                        for (i = 0;i < mWidth;i++) 
    3033                                mData[i] = 0; 
    31                                 mSQData[i] = 0; 
     34 
     35                        if (make_sq) { 
     36                                for (i = 0;i < mWidth;i++) 
     37                                        mSQData[i] = 0; 
     38         
     39                                sum(b, mData, mSQData, b.width, b.height); 
    3240                        } 
    33  
    34                         sum(b, mData, mSQData, b.width, b.height); 
     41                        else 
     42                                sum_nosq(b, mData, b.width, b.height); 
    3543                } 
    3644 
     
    4452                        mEqWinSize.width  = ww; 
    4553                        mEqWinSize.height = wh; 
     54                        mEqArea = ww*wh; 
    4655 
    4756                        mQBase1 = y*mWidth + x; 
    4857                        mQBase2 = mQBase1 + ww; 
    4958                        mQBaseH = wh * mWidth; 
     59                } 
     60 
     61                public function get eqArea():int 
     62                { 
     63                        return mEqArea; 
    5064                } 
    5165/* 
     
    138152                        } 
    139153                } 
     154 
     155                private function sum_nosq(src:BitmapData, ba:Array, swidth:int, sheight:int):void 
     156                { 
     157                        var x:int, y:int; 
     158                        var s:uint; 
     159                        var it:uint, t:uint; 
     160 
     161                        var curpos:int = mWidth; 
     162                        for (y = 0;y < sheight;y++) 
     163                        { 
     164                                ba[curpos++] = 0; 
     165 
     166                                s = 0; 
     167                                for (x = 0;x < swidth;x++) 
     168                                { 
     169                                        t = it = src.getPixel(x, y) & 0x0000ff; 
     170                                        s += t; 
     171                                        t  = ba[curpos - mWidth]  + s; 
     172                                        ba[curpos++] = t; 
     173                                } 
     174                        } 
     175                } 
     176 
    140177        } 
    141178}