daily pastebin goal
57%
SHARE
TWEET

Untitled

a guest Jan 22nd, 2018 41 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public function describeAndSavePoints(ba:ByteArray, ram:ByteArray, levels:int = 4, maxPoints:int = 400):void
  2.         {
  3.             var n:int = IntMath.min( maxPoints, kpoints.length );
  4.             var i:int, j:int;
  5.             var p:KPoint;
  6.             var descriptorDimension:int = describer.dimension;
  7.             var descriptorBytes:int = (descriptorDimension >> 5) << 2;
  8.             var descrOffset:int = 0;
  9.             var descrCount:int = 0;
  10.             var cnt:int;
  11.  
  12.             var img:BitmapData = homoGen.originalImage;
  13.             var ds:Number = 1.0;
  14.             var ds_inc:Number = Math.SQRT2;
  15.             var iw:int = img.width;
  16.             var ih:int = img.height;
  17.             var intPtr:int = memImgInt.ptr;
  18.             var uPtr:int = memImgU.ptr;
  19.            
  20.             ba.writeInt(iw);
  21.             ba.writeInt(ih);
  22.             ba.writeInt(n);
  23.            
  24.             ba.writeInt(describer.dimension);
  25.            
  26.             //patchDescr.setup(patchPtr, patchSize, patchSize, 8);
  27.             DescriptorBitPatch(describer).computeTestsOffset(patchSize, 1);
  28.            
  29.             for(j = 0; j < levels; ++j)
  30.             {
  31.                 var img_lev:BitmapData = new BitmapData(iw/ds, ih/ds, false, 0x00);
  32.                 img_lev.draw(img, new Matrix(1/ds, 0, 0, 1/ds, 0, 0), null, null, null, true);
  33.  
  34.                 var imgData:Vector.<uint> = img_lev.getVector( img_lev.rect );
  35.                
  36.                 var nw:int = img_lev.width;
  37.                 var nh:int = img_lev.height;
  38.                
  39.                 memImgU.fillAndSmooth7x7(imgData, nw, nh, intPtr);
  40.                 MemImageMacro.computeIntegralImage( uPtr, intPtr, nw, nh );
  41.                
  42.                 DescriptorBitPatch(describer).rotIntEst.computeOffsets(nw, 1);             
  43.            
  44.                 for(i = 0; i < n; ++i)
  45.                 {
  46.                     p = kpoints[i];
  47.                     if(p.level == j)
  48.                     {
  49.                         p.descrPtr = descrOffset;
  50.                         p.level = 0;
  51.                        
  52.                         var __intPtr:int = __cint(intPtr + ((p.x+p.y*nw) << 2));
  53.                        
  54.                         ba.writeDouble(p.ux);
  55.                         ba.writeDouble(p.uy);
  56.                         ba.writeDouble(
  57.                         DescriptorBitPatch(describer).rotIntEst.estimate(__intPtr, 0)
  58.                         );
  59.                        
  60.                         //cnt = patchDescr.describe(img_lev, p, describer, descrPtr + descrOffset, 25);
  61.                         ba.writeInt(cnt);
  62.                        
  63.                         descrOffset += descriptorBytes * cnt;
  64.                         descrCount += cnt;
  65.                     }
  66.                 }              
  67.                 ds *= ds_inc;
  68.             }
  69.            
  70.             // write descriptors
  71.             ba.writeBytes( ram, descrPtr, descrOffset );
  72.         }
RAW Paste Data
Top