// odległośći między histogramami(?) public List <float> odlegloscMiedzyHistogramami(Image <Bgr, Byte> img1, Image <Bgr, Byte> img2) { //var img = new Image<Bgr, byte>(@"C:\Users\Mariusz\Desktop\prAG\ucid00443.tif"); //var img2 = new Image<Bgr, byte>(@"C:\Users\Mariusz\Desktop\prAG\ucid00668.tif"); var histogram1 = new mHistogram(img1); var histogram2 = new mHistogram(img2); var met = new Metody(); List <float> wynik = met.porownajHistogramyManhattan(histogram1, histogram2); List <float> wynik2 = met.porownajHistogramyEuklides(histogram1, histogram2); var zwroc = new List <float> { wynik[0], wynik[1], wynik[2], wynik2[0], wynik2[1], wynik2[2] }; return(zwroc); }
private void porownanieButton_Click(object sender, EventArgs e) { string zaznaczenie = pictureList.SelectedItem.ToString(); string pelnaSciezka = SciezkaFolderZeZdjeciami + zaznaczenie; var img = new Image <Bgr, byte>(pelnaSciezka); var histogram1 = new mHistogram(img); var met = new Metody(); var dInfo = new DirectoryInfo(SciezkaFolderZeZdjeciami); FileInfo[] pliki = dInfo.GetFiles(); //float najmniejszaRoznicaR = 1000000000; //float najmniejszaRoznicaG = 1000000000; float najmniejszaRoznicaB = 1000000000; //mHistogram najR = new mHistogram(img); //mHistogram najG = new mHistogram(img); var najB = new mHistogram(img); foreach (FileInfo plik in pliki) { //using ( var img2 = new Image <Bgr, Byte>(plik.FullName); //{ var histogram2 = new mHistogram(img2); List <float> wynik = met.porownajHistogramyEuklides(histogram1, histogram2); float srednia = (wynik[0] + wynik[1] + wynik[2]) / 3; if (srednia < najmniejszaRoznicaB) { if (plik.FullName != pelnaSciezka) { najmniejszaRoznicaB = srednia; najB = histogram2; labelTestNazwa.Text = plik.FullName; } } //if (wynik[1] < najmniejszaRoznicaG) //{ // if (plik.FullName != sciezka) // { // najmniejszaRoznicaG = wynik[1]; // najG = histogram2; // } //} //if (wynik[2] < najmniejszaRoznicaR) //{ // if (plik.FullName != sciezka) // { // najmniejszaRoznicaR = wynik[2]; // najR = histogram2; // } //} //} } List <float> odleglosci = met.odlegloscMiedzyHistogramami(img, najB.Obraz); labelTest.Text = "Manhattan R: " + odleglosci[2] + ", G: " + odleglosci[1] + ", B: " + odleglosci[0]; labelTest2.Text = "Euklides R: " + odleglosci[5] + ", G: " + odleglosci[4] + ", B: " + odleglosci[3]; pictureBox.Image = img.Bitmap; //pictureBoxNajR.Image = najR.Obraz.Bitmap; //pictureBoxNajG.Image = najG.Obraz.Bitmap; pictureBoxNajB.Image = najB.Obraz.Bitmap; }