Exemplo n.º 1
0
 public void Dodaj(float[] tb, T Wartość)
 {
     for (int i = 0; i < pr.Length; i++)
     {
         pr[i].Ucz(Wartość, NaTabliceFloat.PobierzMapeZKodu(tb, i));
     }
 }
        public ObrazDoPorównywania(string NazwaPliku, float Skaler)
        {
            Bitmap b = new Bitmap(NazwaPliku);

            Rozmiar = b.Size;
            ip      = Marshal.AllocHGlobal(b.Width * b.Height);
            bool *WObraz = (bool *)ip;

            Obraz = WObraz;
            for (int i = 0; i < b.Height; i++)
            {
                for (int j = 0; j < b.Width; j++, WObraz++)
                {
                    Color ck   = b.GetPixel(j, i);
                    int   cint = ck.R + ck.B + ck.G;
                    if (cint == 765)
                    {
                        *WObraz = true;
                    }
                    else
                    {
                        *WObraz = false;
                    }
                }
            }
            tabela = NaTabliceFloat.TablicaWartości(new Rectangle(Point.Empty, b.Size), b.Width, Obraz, new Size(8, 8), Skaler);
        }
Exemplo n.º 3
0
 private void button5_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         ObrazDoPorównywania op = new ObrazDoPorównywania(openFileDialog1.FileName, 1);
         float[][]           tb = new float[8][];
         tb[0] = op.NaJedenWymiarfloat;
         NaTabliceFloat.PobierzMapy(tb);
         TymczasoweSkrypty.ZapiszMapy(tb, 8);
     }
 }
Exemplo n.º 4
0
        public void Ucz(T Typ, float[] Dana)
        {
            Element e = DzienikObiektów[Typ];
            var     a = e.ZnajdźNajbliszy(Dana);

            NaTabliceFloat.Ucz(a.Mapa, Dana, WspółczynikUczenia);
            if (a.Index > 0)
            {
                NaTabliceFloat.Ucz(e.Mapy[a.Index - 1], Dana, WspółczynikUczenia * WspółczynikUczeniaSąsiada);
            }
            if (a.Index < e.Mapy.Length - 1)
            {
                NaTabliceFloat.Ucz(e.Mapy[a.Index + 1], Dana, WspółczynikUczenia * WspółczynikUczeniaSąsiada);
            }
        }
Exemplo n.º 5
0
        public float SprawdźNajbliszy(float[] tb, out T Najbliszy)
        {
            float Odalenie = float.MaxValue;

            Najbliszy = default(T);
            foreach (var item in ParyPodobieństw)
            {
                float Delta = NaTabliceFloat.ZnajdźRóżnice(tb, item.Tabela);
                if (Odalenie > Delta)
                {
                    Najbliszy = item.Klucz;
                    Odalenie  = Delta;
                }
            }
            return(Odalenie);
        }
Exemplo n.º 6
0
            public MiejsceIOdległość ZnajdźNajbliszy(float[] Dane)
            {
                float             Odległość = float.MaxValue;
                MiejsceIOdległość mio       = new MiejsceIOdległość();

                mio.E = this;
                for (int i = 0; i < Mapy.Length; i++)
                {
                    float Delta = NaTabliceFloat.ZnajdźRóżnice(Mapy[i], Dane);
                    if (Delta < Odległość)
                    {
                        Odległość = Delta;
                        mio.Index = i;
                        mio.Mapa  = Mapy[i];
                    }
                }
                mio.Odległość = Odległość;
                return(mio);
            }
Exemplo n.º 7
0
        public float SprawdźNajbliszy(float[] tb, out T Najbliszy, out float[] Zw)
        {
            SortedList <float, MiejsceIOdległość> ms = new SortedList <float, MiejsceIOdległość>();

            Zw = new float[DzienikObiektów.Count];
            int NrPrzeglądanego = 0;

            foreach (var item in DzienikObiektów.Values)
            {
                var tmp = item.ZnajdźNajbliszy(tb);
                Zw[NrPrzeglądanego++] = tmp.Odległość;
                try
                {
                    ms.Add(tmp.Odległość, tmp);
                }
                catch
                {
                }
                if (ms.Count > IlośćPorównywanychPrzedZwróceniem)
                {
                    ms.RemoveAt(ms.Count - 1);
                }
            }
            KeyValuePair <float, MiejsceIOdległość> zw = ms.First();

            if (IlośćPorównywanychPrzedZwróceniem > 1)
            {
                foreach (var item in ms)
                {
                    if (NaTabliceFloat.PorównajMiedzyWzorcami(zw.Value.Mapa, item.Value.Mapa, tb) * WspółczynikRóżnicujący + zw.Key - item.Key > 0)
                    {
                        zw = item;
                    }
                }
            }
            Najbliszy = zw.Value.E.Wartość;
            return(zw.Key);
        }
Exemplo n.º 8
0
        public T SprawdźStrony(float[] Dane, float[] TabelaStron, out int WKierunku)
        {
            float[][] x = new float[8][];
            x[0] = Dane;
            NaTabliceFloat.PobierzMapy(x);
            T     Zw = default(T);
            float WartośćNajblisza = float.MaxValue;

            WKierunku = -1;
            for (int i = 0; i < GTest; i++)
            {
                float Odległość = float.MaxValue;
                T     wartość;
                Odległość       = pr[i].SprawdźNajbliszy(Dane, out wartość);
                TabelaStron[i] += Odległość;
                if (Odległość < WartośćNajblisza)
                {
                    WartośćNajblisza = Odległość;
                    Zw        = wartość;
                    WKierunku = i;
                }
            }
            return(Zw);
        }