Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static public class GreedyPointAlgorithm
- {
- public static List<bool[,]> bazaObrazow = new List<bool[,]>();
- static public void dodajObrazDoBazy(bool[,] obraz)
- {
- bazaObrazow.Add(obraz);
- }
- static public int rozpoznajObraz(bool[,] obraz)
- {
- int iMax = -1;
- double miaraMax = Double.MinValue;
- for (int i = 0; i < bazaObrazow.Count; i++)
- {
- double miaraNieprawdopodobienstwa1 = obliczMiareNieprawdopodobienstwa(obraz, bazaObrazow[i]);
- double miaraNieprawdopodobienstwa2 = obliczMiareNieprawdopodobienstwa(bazaObrazow[i], obraz);
- double miaraPrawdopodobienistwa = -(miaraNieprawdopodobienstwa1 + miaraNieprawdopodobienstwa2);
- if(miaraMax < miaraPrawdopodobienistwa)
- {
- miaraMax = miaraPrawdopodobienistwa;
- iMax = i;
- }
- }
- return iMax;
- }
- static public double obliczMiareNieprawdopodobienstwa(bool[,] obraz1, bool[,] obraz2)
- {
- double miara = 0.00;
- for (int iT = 0; iT < 5; iT++)
- {
- for (int jT = 0; jT < 5; jT++)
- {
- if (obraz1[iT, jT] == true)
- {
- double odlMin = Int32.MaxValue;
- for (int iW = 0; iW < 5; iW++)
- {
- for (int jW = 0; jW < 5; jW++)
- {
- if (obraz2[iW, jW] == true)
- {
- double odlAkt = obliczOdleglosc(iT, jT, iW, jW);
- if (odlMin > odlAkt)
- {
- odlMin = odlAkt;
- }
- }
- }
- }
- miara += odlMin;
- }
- }
- }
- return miara;
- }
- static public double obliczOdleglosc(int iT, int jT, int iW, int jW)
- {
- return Math.Abs(Math.Sqrt((iW - iT) * (iW - iT) + (jW - jT) * (jW - jT)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement