Пример #1
0
        private void resimyukle_Click(object sender, EventArgs e)
        {
            //bugünün tarihi
            DateTime dt  = DateTime.Today;
            int      yil = dt.Year;
            int      ay  = dt.Month;
            int      gun = dt.Day;

            labeltarih.Text = gun.ToString() + "/" + ay.ToString() + "/" + yil.ToString(); //

            pictureBox2.Image = pictureBox1.Image;                                         //picturebox2 den görüntü al yani resmini çek
            SaveFileDialog swf      = new SaveFileDialog();                                //kaydet
            Bitmap         bmpKucuk = new Bitmap(pictureBox2.Image, 300, 300);             // Yeniden boyutlandırmak için //Bitmap sınıfı kullanılır Picturebox da yüklü olan resim 100 e 50 boyutunda yeniden  boyutlandırılıyor. Kümeleme yönteminini kullanılması için

            pictureBox2.Image    = bmpKucuk;                                               //picture2 nin boyutlarını değiştir
            pictureBox2.SizeMode = PictureBoxSizeMode.CenterImage;
            pictureBox3.Image    = pictureBox2.Image;                                      //pictruebox3 e picturebox2 yi ata
            bmpSearchImage       = new Bitmap(pictureBox3.Image);                          // picturebox3 bitmap oluştur
            swf.Filter           = "(*.jpg)|*.jpg|Bitma*p(*.bmp)|*.bmp";                   //fotograf cinsini ayarla

            _centroidColor.Add(Color.Green);                                               //renk değişkenime yeşil rengini ekledim
            _centroidColor.Add(Color.Red);                                                 // kırmızı rengi ekledim
            _centroidColor.Add(Color.Blue);                                                // mavi rengi ekledim
            txtCentroids.Text = _centroidColor.Count.ToString();                           // 3 rengimiz oluştu yani RGB renkleri kümeleme yöntemini kullanmak için

            //process
            _algorithm.RunAlgorithm(bmpSearchImage, _centroidColor.Count);

            bmpSearchImageProcessed = _algorithm.ProcessImage(bmpSearchImage, _centroidColor);
            /*RGB renklerini  kümeleme işlemi yaparak görüntümüzü bölümlere ayırır ve benzer piksellerin aynı renk olması durumunu sağlar.*/


            //seçilen klasördeki tüm görüntüler için ayırdıgımız pixellere göre görüntü benzerliğini hesaplar. Sonuçta listeyi  benzerliğe göre sıralar.Bizde en çok yüzdeye sahip olan fotografı getiririz.
            _searchImage   = new ResimleAra(_algorithm);
            similarityList = _searchImage.SortBySimilarity(bmpSearchImageProcessed, _fileArray, _centroidColor); //
            fileList.Items.Clear();
            List <string> tempList = new List <string>();                                                        //templist listesi oluşturur

            foreach (var imagePath in similarityList)
            {
                tempList.Add(imagePath.Key);
            }
            _fileArray = tempList.ToArray();
            foreach (var imagePath in _fileArray)
            {
                fileList.Items.Add(System.IO.Path.GetFileNameWithoutExtension(imagePath));
            }
            fileList.SelectedIndex = 0; //en çok benzerlik olan fotografı seçer


            textBox1.Text     = Convert.ToString("C:\\Users\\yaren\\Desktop\\Photo\\" + fileList.SelectedItem + ".jpg"); // texboxa çekilen resimden buldugu resmi yani urlsini yazdır
            pictureBox9.Image = Image.FromFile(textBox1.Text);                                                           //picturebox9un resim yoluna textbox1 i ata



            string  sorgu = "select AdSoyad from MusteriKayit where  CihazResmi = '" + textBox1.Text + "'"; //textboxda yazan resmin verilerini getir
            DataSet ds    = doldur(sorgu);

            sorgu = "select AdSoyad,Telefon,Email,CihazAdi,CihazMarkasi,CihazModeli,CihazArizasi,TeslimAlinanTarih from MusteriKayit where AdSoyad='" + ds.Tables[0].Rows[0][0] + "'";
            ds.Clear();
            ds = doldur(sorgu);
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                // çektiğimiz verileri labela yazdırma

                labelad.Text      = (ds.Tables[0].Rows[i][0].ToString());
                labeltelefon.Text = (ds.Tables[0].Rows[i][1].ToString());
                comboBox2.Items.Add(labelad.Text);
                comboBox2.SelectedIndex = 0;
                labelemail.Text         = (ds.Tables[0].Rows[i][2].ToString());
                labelcihazadi.Text      = (ds.Tables[0].Rows[i][3].ToString());
                labelcihazmarkasi.Text  = (ds.Tables[0].Rows[i][4].ToString());
                labelcihazmodeli.Text   = (ds.Tables[0].Rows[i][5].ToString());
                labelalinantarih.Text   = (ds.Tables[0].Rows[i][7].ToString());
                labelcihazarizasi.Text  = (ds.Tables[0].Rows[i][6].ToString());
            }
            panel1.Visible      = true;
            pictureBox1.Visible = false;
            button3.Visible     = true;
        }