9650942181

9650942181



Metoda checkSimmilarity() zwraca sumę kwadratów różnic poszczególnych składowych kolorów (czerwonej, zielonej, niebieskiej) obu obrazów:

Math.Pow(

Math.Pow((this.averageColor[0].R -+ Math.Powf(this.averageColor[0].G + Math.Pow((this.averageColor[0].B Math.Pow(

Math.Pow((this.averageColor[1].R + Math.Pow((this.averageColor[1].G + Math.Pow((this.averageColor[1].B Math.Pow(

Math.Pow((this.averageColor[2].R + Math.Pow((this.averageColor[2].G + Math.Pow((this.averageColor[2].B Math.Pow(

Math.Pow((this-averageColor[3]-R + Math.Pow((this.averageColor[3].G + Math.Pow((this.averageColor[3].B smallPhoto.averageColor[0].R), 2)

-    smallPhoto.averageColor[0].G), 2)

-    smallPhoto.averageColor[0].B), 2),

-    smallPhoto.averageColor[1].R), 2)

-    smallPhoto.averageColor[1].G), 2)

-    smallPhoto.averageColor[1].B), 2),

-    smallPhoto.averageColor[2].R), 2)

-    smallPhoto.averageColor[2].G), 2)

-    smallPhoto.averageColor[2].B), 2),

-    smallPhoto.averageColor[3]-R), 2)

-    smallPhoto.averageColor[3].G), 2)

-    smallPhoto.averageColor[3].B), 2),

X) +


1) +


1)


Natomiast opisana wyżej metoda Replace() wygląda następująco:

public void ReplaceO {

<

double maxSimilarity = double.MaxValue;

Smal;Photo bestlmage = ComponentPhotoI.ist.SmallPhotoList.First(); foreach (SmallPhoto smallPhoto in ComponentPhotoList.SmallPhotoList)

double similarity = checkSimilarity(smallPhoto); if (similarity < maxSimilarity)

{

maxSimilarity = similarity; bestlmage = smallPhoto;

this.Image = new Bitmap(bestlmage.Image, this.Image.Size);

return;

g. Zapis wygenerowanej mozaiki do pliku

Zapis mozaiki do pliku jest realizowany przez metodę btnSave_Click(), znajdującą się w klasie formy FormMain. Metoda wyświetla odpowiednią kontrolkę do określenia wyjściowej nazwy pliku, oraz - w przypadku potwierdzenia - zapisuje plik w formacie JPEG do pliku o określonej przez użytkownika nazwie.

Cała funkcja jest bardzo prosta i została zaimplementowana w następujący sposób:

private void btnSave_Click(object sender, EventArgs e)

<

DialogResult result = dlgExportMosaic.ShowDialog(); switch (result)

{

case DialogResult.OK: case DialogResult.Yes:

BigPhot o.Image.Save(dlgExportMosaic.FileName, imageFormat.Jpeg);

19



Wyszukiwarka

Podobne podstrony:
ARTUR KROWIAK JEHE MECHANIKAMONOGRAFIA411 Metoda kwadratur różniczkowych w zastosowaniu do
gwiazd różnicowych, lokalna aproksymacja funkcji metodą kroczących najmniejszych, ważonych kwadratów
94 95 BADANIE POSZCZEGÓLNYCH CZĘŚCI CIAŁAGŁOWA Przy badaniu głowy podstawowymi metodami fizycznymi z
(zmęczenie) pacjenta. W tym przypadku nie przeprowadza się dekompozycji sygnału na poszczególne skła
img179 179 zakodowanym różnicowo poszczególnych sygnałów elementowych, p1 = p? = 0,5. pozwala nam to
img273 Jeżeli przez Se oznaczymy resztową sumę kwadratów dla zmiennej standaryzowanej y to■V = Syy
28 Filozofia Kanta i jej recepcja w osiemnastym i dziewiętnastym wieku tym idzie — różnicy w poszcze
IMG?37 KONTRAST Znaczenie akcentowanego elementu jest tym większe im większa jest różnica poszczegól
©21/10/2009 dodawanie surn algebraicznych kwadrat różnicy mnożenie sum algebraicznych potęgi
Wzory skróconego mnożenia Wzory skróconego mnożenia kwadrat sumy (a+b)2 = a2 + 2ab + b2 kwadrat różn
pierwiastek Zwraca pierwiastek kwadratowy liczby. Liczba - liczba, dla której chcesz uzyskać pierw
81600 IMG33 Moment pędu (całkowity) jest równy a jego kwadrat M Mv+M,+M, M* «MXJ + M,’ + M,1 Składo
1. Wariancja (5Z) - średnia arytmetyczna kwadratów odchyleń poszczególnych wartości cechy od średnie
sc# W iii 1K1 UBL1CZEI1 RŁAKUJ 1 : Poszczególne składowe reakcji: Podpora ń: Rxa= -939.1 [NI Ry

więcej podobnych podstron