Skocz do zawartości

Apikacja C# skala szarości


Recommended Posts

Witam potrzebuje pomocy w zmianie w aplikacji napisanej w C# sieci autoasocjacyjnej (czarno biały) na skale szarości trzeba zmienić tylko to. Bardzo ważne!! Help...

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Sieci_neuronowe
{
    public partial class Form3 : Form
    {
        Graphics rysuj;
        Bitmap bmp = new Bitmap(500, 500);
        Pen pedzel_siatka = new Pen(Color.White);
        Pen pedzel = new Pen(Color.Black);
        Pen pedzel_bialy = new Pen(Color.White);
        Point point = Point.Empty;
        public int[,] tab_We ;                      // wej
        public int[] tab_Wy = new int[8];           //wyj
        public int roz, komorki , nr ;              // rozmiar

        public Form3()
        {
            InitializeComponent();
            rysuj = Graphics.FromImage(bmp);
            radioButton2.Checked = true;
            czysc();
            siatka();

            figory.SelectedIndex = 0;

        }
      
        public void siatka()
        {
            czysc();
            for (int i = roz; i < 500; i += roz)
            {
                rysuj.DrawLine(pedzel_siatka, 0, i, 500, i);
                rysuj.DrawLine(pedzel_siatka, i, 0, i, 500);
            }
            plotno.Image = bmp;
           
        }
        public void czysc()
        {
            for (int i = 0; i < 500; i++)
            {
                for (int j = 0; j < 500; j++)
                {
                    bmp.SetPixel(i, j, Color.White);
                }
            }         
        }

       

        public void sprawdzaj()
        {
        
            
            Color kolor;

            tab_We = new int[komorki, komorki];
            for (int i = 0; i < komorki; i++)
            {
                for (int j = 0; j < komorki; j++)
                {
                    for (int x = roz * i; x < roz * (i + 1); x++)
                    {
                        for (int y = roz * j; y < roz * (j + 1); y++)
                        {
                            kolor = bmp.GetPixel(x, y);        
                         
                            if (kolor.R == 0 && kolor.G == 0  && kolor.B == 0 )           //RGB
                            {
                                tab_We[j, i]++;
                            }
                        }
                    }
                }
            }
        
            for (int i = 0; i < komorki; i++)
            {
                for (int j = 0; j < komorki; j++)
                {
                    if (tab_We[i, j] > 0)
                    {
                        tab_We[i, j] = 1;
                    }
                }
            }
        }
        
        private void szerokosc_pedzla()
        {
            pedzel.Width = (int)rozmiar_pedzla.Value;
        }
        private void plotno_MouseDown(object sender, MouseEventArgs e)
        {
            point = e.Location;
        }
        private void plotno_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                szerokosc_pedzla();
                pedzel.Width = (int)rozmiar_pedzla.Value;
                rysuj.DrawLine(pedzel, e.Location, point);
                point = e.Location;
            }
            if (e.Button == MouseButtons.Right)
            {
                szerokosc_pedzla();
                pedzel_bialy.Width = (int)rozmiar_pedzla.Value;
                rysuj.DrawLine(pedzel_bialy, e.Location, point);
                point = e.Location;
            }
            

           
            plotno.Image = bmp;
           
        }
        

        //++wybierz rozmiar siatki++//
        

        public void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            komorki = 10;
            roz = 50;
            siatka();
            
        }
        
        public void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            komorki = 20;
            roz = 25;
            siatka();
            
        }


        //++zapisywanie pliku .pat++//

        public void zapisz_Click(object sender, EventArgs e)
        {

            string z = nr.ToString()  + (komorki * komorki).ToString() ;
            SaveFileDialog zapisz = new SaveFileDialog();
            zapisz.Filter = "pat files (*.pat)|*.pat";
            if (zapisz.ShowDialog() == DialogResult.OK)
            {
                StreamWriter writer = new StreamWriter(zapisz.FileName);
                writer.WriteLine(z);
                writer.WriteLine(richTextBox1.Text);
                writer.Close();
            }
        }
        private void wyczysc_Click(object sender, EventArgs e)
        {
            czysc();
            siatka();
        }


        //++podglad .pat++//


        public void podglad_Click(object sender, EventArgs e)
        {
            sprawdzaj();
            tab_Wy[figory.SelectedIndex] = 1;
            nr++;
            richTextBox1.Text += "## Input pattern " + nr.ToString() + "##" + "\n";

                for (int i = 0; i < komorki; i++)
                {
                    for (int j = 0; j < komorki; j++)
                    {
                        richTextBox1.Text += tab_We[i, j].ToString() + " ";
                    }
                    richTextBox1.Text += "\n";

                }
                richTextBox1.Text += "## Output patern " + nr.ToString() + "##" + "\n";

                for (int i = 0; i < 8; i++)
                {
                    richTextBox1.Text += tab_Wy.ToString() + " ";
                }
                richTextBox1.Text += "\n";
            }
        

        //++czyszczenie podgladu pat++//


        private void czysc_podglad_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = null;
            nr = 0;
           
           
        }



        //++digitalizacja rysunku++//


        private void digitalizuj_Click(object sender, EventArgs e)
        {
            sprawdzaj();
            for (int i = 0; i < komorki; i++)
            {
                for (int j = 0; j < komorki; j++)
                {
                    if (tab_We[i, j] == 1)
                    {
                        SolidBrush kolor_komorki = new SolidBrush(Color.Black);
                        rysuj.FillRectangle(kolor_komorki, (j * roz), (i * roz), roz, roz);
                        kolor_komorki.Dispose();
                    }
                }
            }
            plotno.Refresh();
        }

        private void plotno_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void rozmiar_pedzla_ValueChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }

       

    }
}
 

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...