Advertisement
Adik28

Greedy Point / A

Jan 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.36 KB | None | 0 0
  1. static public class GreedyPointAlgorithm
  2.     {
  3.         public static List<bool[,]> bazaObrazow = new List<bool[,]>();
  4.  
  5.         static public void dodajObrazDoBazy(bool[,] obraz)
  6.         {
  7.             bazaObrazow.Add(obraz);
  8.  
  9.         }
  10.  
  11.         static public int rozpoznajObraz(bool[,] obraz)
  12.         {
  13.             int iMax = -1;
  14.             double miaraMax = Double.MinValue;
  15.             for (int i = 0; i < bazaObrazow.Count; i++)
  16.             {
  17.                 double miaraNieprawdopodobienstwa1 = obliczMiareNieprawdopodobienstwa(obraz, bazaObrazow[i]);
  18.                 double miaraNieprawdopodobienstwa2 = obliczMiareNieprawdopodobienstwa(bazaObrazow[i], obraz);
  19.                 double miaraPrawdopodobienistwa = -(miaraNieprawdopodobienstwa1 + miaraNieprawdopodobienstwa2);
  20.                 if(miaraMax < miaraPrawdopodobienistwa)
  21.                 {
  22.                     miaraMax = miaraPrawdopodobienistwa;
  23.                     iMax = i;
  24.                 }
  25.             }
  26.  
  27.             return iMax;
  28.         }
  29.  
  30.         static public double obliczMiareNieprawdopodobienstwa(bool[,] obraz1, bool[,] obraz2)
  31.         {
  32.             double miara = 0.00;
  33.  
  34.             for (int iT = 0; iT < 5; iT++)
  35.             {
  36.                 for (int jT = 0; jT < 5; jT++)
  37.                 {
  38.                     if (obraz1[iT, jT] == true)
  39.                     {
  40.                         double odlMin = Int32.MaxValue;
  41.                         for (int iW = 0; iW < 5; iW++)
  42.                         {
  43.                             for (int jW = 0; jW < 5; jW++)
  44.                             {
  45.                                 if (obraz2[iW, jW] == true)
  46.                                 {
  47.                                     double odlAkt = obliczOdleglosc(iT, jT, iW, jW);
  48.                                     if (odlMin > odlAkt)
  49.                                     {
  50.                                         odlMin = odlAkt;
  51.                                     }
  52.  
  53.                                 }
  54.  
  55.                             }
  56.                         }
  57.                         miara += odlMin;
  58.                     }
  59.  
  60.                 }
  61.             }
  62.  
  63.             return miara;
  64.         }
  65.  
  66.         static public double obliczOdleglosc(int iT, int jT, int iW, int jW)
  67.         {
  68.             return Math.Abs(Math.Sqrt((iW - iT) * (iW - iT) + (jW - jT) * (jW - jT)));
  69.         }
  70.  
  71.  
  72.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement