Пример #1
0
        public static AdjacentPhoto newInstance(Photo photo, Vector2 dir, float dira)
        {
            AdjacentPhoto ap;

            if (pool_.Count > 0)
            {
                ap = pool_[pool_.Count - 1];
                pool_.RemoveAt(pool_.Count - 1);
            }
            else
            {
                ap = new AdjacentPhoto();
            }

            ap.photo_ = photo;
            ap.dir_ = dir;
            ap.dira_ = dira;

            return ap;
        }
Пример #2
0
 public double PhotoDist(Photo p)
 {
     double distMax = (double)(Photo.FeatureSplit * Photo.FeatureSplit) * 2d;// Math.Sqrt(1.25d);
     double dist = 0.0;
     for (int j = 0; j < Photo.FeatureSplit * Photo.FeatureSplit; ++j)
     {
         dist += ResourceManager.HsvDist(this.color.feature_[j], p.color.feature_[j]);
     }
                             // 距离正规化
     dist /= distMax;
     dist += (this.color.variance_ - p.color.variance_) * (this.color.variance_ - p.color.variance_);
     dist /= 2d;
     return dist;
 }
Пример #3
0
 public void AddAdjacentPhotoDisplay(Photo photo, Vector2 dir, float dira)
 {
     adjacencyDisplay_.Add(AdjacentPhoto.newInstance(photo, dir, dira));
 }