Browse Source

Finalization

master
Apostolos Fanakis 6 years ago
parent
commit
03d6517111
  1. BIN
      Assignment_2/1.jpeg
  2. BIN
      Assignment_2/2.jpeg
  3. 12
      Assignment_2/report/5.0.demo1.tex
  4. 50
      Assignment_2/report/6.0.demo2.tex
  5. 1
      Assignment_2/report/7.0.demo3.tex
  6. 31
      Assignment_2/report/7.1.demo3a.tex
  7. 10
      Assignment_2/report/7.2.demo3b.tex
  8. 55
      Assignment_2/report/7.3.demo3c.tex
  9. 49
      Assignment_2/report/8.0.results.tex
  10. 2
      Assignment_2/report/report.tex
  11. 58
      Assignment_2/report/res/exp_1_c.pdf_tex
  12. 116
      Assignment_2/report/res/exp_1_c.svg
  13. 58
      Assignment_2/report/res/exp_1_o.pdf_tex
  14. 116
      Assignment_2/report/res/exp_1_o.svg
  15. 58
      Assignment_2/report/res/exp_2_c.pdf_tex
  16. 116
      Assignment_2/report/res/exp_2_c.svg
  17. 58
      Assignment_2/report/res/exp_2_o.pdf_tex
  18. 116
      Assignment_2/report/res/exp_2_o.svg
  19. 36
      Assignment_2/tester.m

BIN
Assignment_2/1.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
Assignment_2/2.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

12
Assignment_2/report/5.0.demo1.tex

@ -2,11 +2,15 @@
Στη πρώτη σειρά πειραμάτων γίνεται παρουσίαση της λειτουργίας και των αποτελεσμάτων της συνάρτησης \texttt{mySpectralClustering}. Τα πειράματα εκτελούνται με κλήση του script \texttt{demo1} χωρίς ορίσματα. Το script εκτελεί μία σειρά από τρία πειράματα κατά τα οποία γίνεται κατάτμηση ενός δοσμένου γράφου συγγένειας (``\texttt{d1a}'') σε δύο, τρεις και τέσσερεις ομάδες (clusters) διαδοχικά. Τα αποτελέσματα φαίνονται παρακάτω.
Η έξοδος της συνάρτηση είναι ένα διάνυσμα (vector) με την ομάδα στην οποία ανήκει κάθε pixel της αρχικής εικόνας. Στα επόμενα πειράματα στα οποία οι διαστάσεις της αρχικής εικόνας είναι διαθέσιμες θα γίνεται πρώτα κατάλληλη μετατροπή του διανύσματος σε πίνακα με διαστάσεις ίδιες με αυτές της αρχικής εικόνας. Εδώ οι διαστάσεις δεν είναι γνωστές οπότε το βήμα αυτό παραλείπεται. Έπειτα πρέπει να αντιμετωπιστεί το πρόβλημα των τιμών του πίνακα, οι οποίες είναι οι φυσικοί $1, 2, 3,... ,k$ και αντιστοιχούν στην ομάδα που έχει ανατεθεί σε κάθε pixel. Για να γίνει απεικόνιση του πίνακα πρέπει οι τιμές αυτές να μεταφερθούν στο διάστημα $[0, 1]$, για το σκοπό αυτό εκτελείται διαίρεση των στοιχείων του πίνακα με τον αριθμό των ομάδων $k$. Έτσι προκύπτουν οι grayscale κατατμημένες εικόνες.
Η έξοδος της συνάρτηση είναι ένα διάνυσμα (vector) με την ομάδα στην οποία ανήκει κάθε pixel της αρχικής εικόνας. Στα επόμενα πειράματα στα οποία οι διαστάσεις της αρχικής εικόνας είναι διαθέσιμες θα γίνεται πρώτα κατάλληλη μετατροπή του διανύσματος σε πίνακα με διαστάσεις ίδιες με αυτές της αρχικής εικόνας. Εδώ οι διαστάσεις δεν είναι γνωστές οπότε το βήμα αυτό παραλείπεται.
Έπειτα πρέπει να αντιμετωπιστεί το πρόβλημα των τιμών του πίνακα, οι οποίες είναι οι φυσικοί $1, 2, 3,... ,k$ και αντιστοιχούν στην ομάδα που έχει ανατεθεί σε κάθε pixel. Για να γίνει απεικόνιση του πίνακα πρέπει οι τιμές αυτές να μεταφερθούν στο διάστημα $[0, 1]$, για το σκοπό αυτό εκτελείται διαίρεση των στοιχείων του πίνακα με τον αριθμό των ομάδων $k$. Έτσι προκύπτουν οι grayscale κατατμημένες εικόνες.
Σημειώνεται ότι το πραγματικό διάστημα τιμών που προκύπτει μετά τη διαίρεση είναι το $(0, 1]$, δηλαδή η τιμή $0$ δεν υπάρχει στους πίνακες, ενώ η τιμή $1$ υπάρχει (μάλιστα υπάρχει πάντα). Γεγονώς που εκμεταλλευόμαστε βάζοντας τις εικόνες σε μαύρο φόντο για καλύτερη απεικόνιση.
\begin{figure}[H]
\centering
\resizebox{\textwidth}{!}{
\resizebox{.6\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo1_f1.pdf_tex}}
}
\caption{Κατάτμηση γράφου σε 2 ομάδες}
@ -14,7 +18,7 @@
\begin{figure}[H]
\centering
\resizebox{\textwidth}{!}{
\resizebox{.6\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo1_f2.pdf_tex}}
}
\caption{Κατάτμηση γράφου σε 3 ομάδες}
@ -22,7 +26,7 @@
\begin{figure}[H]
\centering
\resizebox{\textwidth}{!}{
\resizebox{.6\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo1_f3.pdf_tex}}
}
\caption{Κατάτμηση γράφου σε 4 ομάδες}

50
Assignment_2/report/6.0.demo2.tex

@ -2,20 +2,21 @@
Στη δεύτερη σειρά πειραμάτων γίνεται παρουσίαση της λειτουργίας και των αποτελεσμάτων της συνάρτησης \texttt{mySpectralClustering} σε συνδυασμό με τη συνάρτηση \texttt{Image2Graph}. Τα πειράματα εκτελούνται με κλήση του script \texttt{demo2} χωρίς ορίσματα. Το script εκτελεί μία σειρά από έξι πειράματα κατά τα οποία γίνεται κατάτμηση δύο δοσμένων εικόνων (``\texttt{d2a}'' και ``\texttt{d2b}'') σε δύο, τρεις και τέσσερεις ομάδες (clusters) διαδοχικά. Τα αποτελέσματα φαίνονται και σχολιάζονται στη συνέχεια.
Στο πρώτο μέρος του script εκτελούνται τα πειράματα για την πρώτη εικόνα που δίνεται (``\texttt{d2a}''). Ο affinity matrix που προκύπτει απεικονίζεται γραφικά ώστε να γίνει εμφανής η δομή και η συμμετρία του. Τα αποτελέσματα της κατάτμησης φαίνονται παρακάτω.
\begin{figure}[H]
\centering
\resizebox{.7\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e1_g.pdf_tex}}
}
\caption{Απεικόνιση affinity matrix πρώτης εικόνας (``\texttt{d2a}'')}
\label{d2a_g}
\end{figure}
Στο πρώτο μέρος του script εκτελούνται τα πειράματα για την πρώτη εικόνα που δίνεται (``\texttt{d2a}''). Ο affinity matrix που προκύπτει απεικονίζεται γραφικά παραπάνω (\ref{d2a_g}) ώστε να γίνει εμφανής η δομή και η συμμετρία του. Τα αποτελέσματα της κατάτμησης φαίνονται παρακάτω.
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e1_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2a}'')}
@ -23,7 +24,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e1_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 2 ομάδες}
@ -33,7 +34,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e1_f3.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 3 ομάδες}
@ -41,7 +42,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e1_f4.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 4 ομάδες}
@ -50,20 +51,23 @@
Όπως φαίνεται στις εικόνες ο αλγόριθμος κάνει τέλεια κατάτμηση για τη περίπτωση των τριών ομάδων. Στη περίπτωση των δύο ομάδων η πράσινη και κόκκινη περιοχή κατατάσσονται στην ίδια ομάδα, ωστόσο αυτό μπορεί να αλλάξει ανάλογα με το σπόρο που θα δοθεί στην αρχή του script λόγω της τυχαιότητας που εισάγεται από τον αλγόριθμο K-Means. Τέλος στη περίπτωση των τεσσάρων ομάδων παρουσιάζεται ``θόρυβος'' στην ομαδοποίηση.
Στο δεύτερο μέρος του script εκτελούνται τα πειράματα για την δεύτερη εικόνα που δίνεται (``\texttt{d2b}''). Ο affinity matrix που προκύπτει απεικονίζεται και πάλι γραφικά. Τα αποτελέσματα της κατάτμησης φαίνονται παρακάτω.
Στο δεύτερο μέρος του script εκτελούνται τα πειράματα για την δεύτερη εικόνα που δίνεται (``\texttt{d2b}''). Ο affinity matrix που προκύπτει απεικονίζεται και πάλι γραφικά (\ref{d2b_g}).
\begin{figure}[H]
\centering
\resizebox{.7\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_g.pdf_tex}}
}
\caption{Απεικόνιση affinity matrix πρώτης εικόνας (``\texttt{d2b}'')}
\label{d2b_g}
\end{figure}
Τα αποτελέσματα της κατάτμησης φαίνονται παρακάτω.
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2b}'')}
@ -71,17 +75,19 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f3.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 2 ομάδες, grayscale χρώματα}
\end{figure}
\end{multicols}
\newpage
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f5.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 3 ομάδες, grayscale χρώματα}
@ -89,7 +95,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f7.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 4 ομάδες, grayscale χρώματα}
@ -101,7 +107,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2b}'')}
@ -109,17 +115,19 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 2 ομάδες, χρωματικός διάμεσος}
\end{figure}
\end{multicols}
\newpage
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f4.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 3 ομάδες, χρωματικός διάμεσος}
@ -127,17 +135,17 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo2_e2_f6.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 4 ομάδες, χρωματικός διάμεσος}
\end{figure}
\end{multicols}
Στη περίπτωση των δύο ομάδων θα ήταν ιδανικό να διαχωριστεί το καμπυλόγραμμο τετράγωνο που βρίσκεται ``μπροστά'' από το λευκό φόντο που βρίσκεται πίσω. Στη περίπτωση αυτή ο αλγόριθμος έχει μέτρια αποτελέσματα, ομαδοποιόντας τα χέρια της φιγούρας του Mario στην ίδια ομάδα με το φόντο.
Στη περίπτωση των δύο ομάδων θα ήταν ιδανικό να διαχωριστεί το καμπυλόγραμμο τετράγωνο που βρίσκεται ``μπροστά'' από το λευκό φόντο που βρίσκεται πίσω. Στη περίπτωση αυτή ο αλγόριθμος έχει μέτρια αποτελέσματα, ομαδοποιόντας τα χέρια της φιγούρας του Mario καθώς και μέρος του προσώπου στην ίδια ομάδα με το φόντο.
Στη περίπτωση των τριών ομάδων θα ήταν ιδανικό να δημιουργηθούν οι ομάδες ώστε να περιέχουν η μία το λευκό φόντο, η άλλη το μπλε φόντο της φιγούρας και η τρίτη τη φιγούρα. Και εδώ ο αλγόριθμος δίνει μέτρια αποτελέσματα.
Στη περίπτωση των τριών ομάδων θα ήταν ιδανικό να δημιουργηθούν οι ομάδες ώστε να περιέχουν η μία το λευκό φόντο, η άλλη το μπλε φόντο της φιγούρας και η τρίτη τη φιγούρα. Εδώ ο αλγόριθμος αποδίδει άσχημα αποτελέσματα δημιουργώντας μία ομάδα με ένα μόνο εικονοστοιχείο.
Στη περίπτωση των τεσσάρων ομάδων ισχύει ό,τι και στη προηγούμενη, δηλαδή για τρείς ομάδες.
Στη περίπτωση των τεσσάρων ομάδων υπάρχει και πάλι η ομάδα με το μοναδικό εικονοστοιχείο, ωστόσο η επιπλέον ομάδα παρέχει έναν καλό επιπλέον διαχωρισμό της κόκκινης εξωτερικής λεζάντας.
Παρατηρείται ότι ο αλγόριθμος έχει σχετικά ικανοποιητικά αποτελέσματα αλλά επιδέχεται βελτίωσης.
Παρατηρείται ότι ο αλγόριθμος έχει ικανοποιητικά αποτελέσματα αλλά επιδέχεται σημαντικής βελτίωσης.

1
Assignment_2/report/7.0.demo3.tex

@ -4,3 +4,4 @@
\input{7.1.demo3a}
\input{7.2.demo3b}
\input{7.3.demo3c}

31
Assignment_2/report/7.1.demo3a.tex

@ -7,7 +7,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e1_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2a}'')}
@ -15,7 +15,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e1_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 2 ομάδες}
@ -25,7 +25,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e1_f3.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 3 ομάδες}
@ -33,7 +33,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e1_f4.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 4 ομάδες}
@ -49,7 +49,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2b}'')}
@ -57,7 +57,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f3.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 2 ομάδες, grayscale χρώματα}
@ -67,7 +67,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f5.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 3 ομάδες, grayscale χρώματα}
@ -75,17 +75,19 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f7.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 4 ομάδες, grayscale χρώματα}
\end{figure}
\end{multicols}
\newpage
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2b}'')}
@ -93,7 +95,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 2 ομάδες, χρωματικός διάμεσος}
@ -103,7 +105,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f4.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 3 ομάδες, χρωματικός διάμεσος}
@ -111,14 +113,11 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3a_e2_f6.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 4 ομάδες, χρωματικός διάμεσος}
\end{figure}
\end{multicols}
Όπως και στη περίπτωση του spectral clustering που πραγματοποιήθηκε στη δεύτερη σειρά πειραμάτων, έτσι και εδώ ο αλγόριθμος normalized cuts δίνει αξιόλογα αποτελέσματα κατάτμησης, εξακολουθεί ωστόσο να επιδέχεται βελτιώσεων.
Όπως και για τη προηγούμενη εικόνα, τα αποτελέσματα του αλγόριθμου normalized cuts είναι συγκρίσιμα με αυτά του spectral clustering για αυτή τη μη αναδρομική εκδοχή. Αυτή τη φορά παρατηρείται μικρή βελτίωση στη κατάτμηση με χρήση normalized cuts, όχι όμως σημαντική.
Ο αλγόριθμος normalized cuts δίνει αξιόλογα αποτελέσματα κατάτμησης. Τα αποτελέσματα του αλγόριθμου normalized cuts είναι σαφώς καλύτερα σε σχέση με αυτά του spectral clustering για αυτή τη μη αναδρομική εκδοχή, εξακολουθεί ωστόσο να επιδέχεται βελτιώσεων.

10
Assignment_2/report/7.2.demo3b.tex

@ -7,7 +7,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3b_e1_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2a}'')}
@ -15,7 +15,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3b_e1_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}'') σε 2 ομάδες}
@ -27,7 +27,7 @@
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3b_e2_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2b}'')}
@ -35,7 +35,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3b_e2_f3.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 2 ομάδες, grayscale χρώματα}
@ -44,7 +44,7 @@
\begin{figure}[H]
\centering
\resizebox{.4\textwidth}{!}{
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3b_e2_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}'') σε 3 ομάδες, χρωματικός διάμεσος}

55
Assignment_2/report/7.3.demo3c.tex

@ -0,0 +1,55 @@
\subsection{Αναδρομικός normalized cuts}
Η εκδοχή της αναδρομικής εκτέλεσης παρουσιάζεται στο script \texttt{demo3c}. Το script εκτελεί μία σειρά από δύο πειράματα κατά τα οποία γίνεται κατάτμηση δύο δοσμένων εικόνων (``\texttt{d2a}'' και ``\texttt{d2b}'') σε ομάδες (clusters) διαδοχικά. Τα αποτελέσματα φαίνονται και σχολιάζονται στη συνέχεια.
Στο πρώτο μέρος του script εκτελείται το πείραμα για την πρώτη εικόνα που δίνεται (``\texttt{d2a}''). Το αποτέλεσμα της κατάτμησης φαίνεται παρακάτω.
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3c_e1_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2a}'')}
\end{figure}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3c_e1_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2a}''), τυχαίος χωματισμός των ομάδων}
\end{figure}
\end{multicols}
Σε αυτή τη περίπτωση ο αλγόριθμος κάνει τη βέλτιστη ομαδοποίηση, σταματώντας στις τρεις ομάδες και αντιστοιχίζοντας μία ομάδα σε κάθε χρώμα της αρχικής εικόνας.
Στο δεύτερο μέρος του script εκτελείται το πείραμα για την δεύτερη εικόνα που δίνεται (``\texttt{d2b}''). Το αποτέλεσμα της κατάτμησης φαίνεται παρακάτω.
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3c_e2_f1.pdf_tex}}
}
\caption{Αρχική εικόνα (``\texttt{d2b}'')}
\end{figure}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3c_e2_f3.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}''), τυχαίος χωματισμός των ομάδων}
\end{figure}
\end{multicols}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/demo3c_e2_f2.pdf_tex}}
}
\caption{Κατάτμηση πρώτης εικόνας (``\texttt{d2b}''), χρωματικός διάμεσος}
\end{figure}
Στη δεύτερη εικόνα ο αλγόριθμος χωρίζει σε τρεις ομάδες με πολύ ικανοποιητικά αποτελέσματα.

49
Assignment_2/report/8.0.results.tex

@ -1,16 +1,39 @@
\section{Εκτέλεση και αποτελέσματα}
% Παρακάτω παρατίθενται ενδεικτικά οι χρόνοι εκτέλεσης των βασικών συναρτήσεων για επιλεγμένες διαστάσεις τελικής εικόνας 960Χ1280 καθώς:
Από τη προηγούμενη ανάλυση βγαίνει το συμπέρασμα ότι η αναδρομική εκδοχή του normalized cuts αλγόριθμου δίνει τα βέλτιστα αποτελέσματα. Για την περαιτέρω επίδειξη της ποιότητας του αλγορίθμου, η αναδρομική εκδοχή του δοκιμάστηκε σε πραγματικές εικόνες. Τα αποτελέσματα φαίνονται παρακάτω.
% \begin{table}[H]
% \centering
% \begin{tabular}{l l} \toprule
% Συνάρτηση & Χρόνος (seconds) \\ \midrule
% \texttt{bayer2rgb} (``nearest'') & 0.164 \\
% \texttt{bayer2rgb} (``linear'') & 0.484 \\
% \texttt{imagequant} & 0.0315 \\
% \texttt{imagedequant} & 0.024 \\
% \texttt{saveasppm} & 0.208 \\ \bottomrule
% \end{tabular}
% \caption{Χρόνοι βασικών συναρτήσεων}
% \end{table}
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/exp_1_o.pdf_tex}}
}
\caption{Αρχική εικόνα}
\end{figure}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/exp_1_c.pdf_tex}}
}
\caption{Κατάτμηση εικόνας, χρωματικός διάμεσος}
\end{figure}
\end{multicols}
\begin{multicols}{2}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/exp_2_o.pdf_tex}}
}
\caption{Αρχική εικόνα}
\end{figure}
\begin{figure}[H]
\centering
\resizebox{.5\textwidth}{!}{
\colorbox{shadecolor}{\input{res/exp_2_c.pdf_tex}}
}
\caption{Κατάτμηση εικόνας, χρωματικός διάμεσος}
\end{figure}
\end{multicols}

2
Assignment_2/report/report.tex

@ -20,7 +20,7 @@
\definecolor{shadecolor}{RGB}{0, 0, 0}
\graphicspath{{res/}}
%\usepackage{multirow}
%\usepackage[all]{hypcap}
\usepackage[all]{hypcap}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}

58
Assignment_2/report/res/exp_1_c.pdf_tex

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.3, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'exp_1_c.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{67.49999915bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,1)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{exp_1_c.pdf}}%
\end{picture}%
\endgroup%

116
Assignment_2/report/res/exp_1_c.svg

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="23.8125mm"
height="23.8125mm"
viewBox="0 0 23.8125 23.8125"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="exp_1_c.svg">
<defs
id="defs2">
<clipPath
id="clipPath1"
clipPathUnits="userSpaceOnUse">
<path
id="path816"
d="M 0,0 H 276 V 181 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath2"
clipPathUnits="userSpaceOnUse">
<path
id="path819"
d="M 0,0 H 90 V 90 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="-22.876832"
inkscape:cy="-6.0369708"
inkscape:document-units="mm"
inkscape:current-layer="g835"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1025"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-93.667899,-81.615013)">
<g
style="font-style:normal;font-weight:normal;font-size:12px;font-family:Dialog;color-interpolation:auto;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto"
id="g863"
transform="matrix(0.26458333,0,0,0.26458333,69.326233,74.20668)">
<g
id="g835">
<defs
id="defs1">
<clipPath
id="clipPath849"
clipPathUnits="userSpaceOnUse">
<path
id="path847"
d="M 0,0 H 276 V 181 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath853"
clipPathUnits="userSpaceOnUse">
<path
id="path851"
d="M 0,0 H 90 V 90 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<g
id="g833"
style="color-interpolation:sRGB;fill:#000000;fill-opacity:0;stroke:#000000;stroke-opacity:0;color-rendering:optimizeSpeed;image-rendering:optimizeSpeed;shape-rendering:crispEdges;text-rendering:optimizeSpeed"
transform="translate(92,28)">
<image
id="image831"
clip-path="url(#clipPath2)"
preserveAspectRatio="none"
height="90"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAIAAAC3ytZVAAACKklEQVR42u3cS04D MRAEUB+EBWLL3bgHew4Ah2OBxCFI5AiNPP60u/2bckleoIQk9ku5bc9IcW8/v8Dt 6ePr1v7/yLTXl+dbc8AKwuYhMDmqIM4i5IDmqEU5zhQcDnUo8NOhrqMIHH4dtSQF jSMQ2ZpDve8CnCznaGydjihHUcSPHI1DZwE7WYRFNHj8OHhkjtT3n3oqiuIwtluK NeUcDRCOVEDORkERBV9oLUssDkdRpFg+cDiCY4sxIA7p8Bp9JG/E6x0bcORX301P tOoTHXI6dPMIhyO1uCoC4q54ZhXmQrFhd52+n/EclkWnTe1I7e2Oh0XJ+t9ERz1N rBxFhaiL5H/kTcjRIB0Z4+KQvj/fq5ii75B/kxRNFMuaDsk5p3Z4coWgCXMXvaIj 2aEXtmFyhdpOC8efaYqPSN2CFHEUIYzjN3K0+mgRhxCiSYd0EA2/iQKHvUZUvXw6 RwbI6SyMPVuK45gUF7Xo3aGlouFFfNFwlo4OFunK8UjH+Cm9WuE4iji7RW131+R4 rCxNIAZwDLBozJHp9zBr4yagPUd0ABM5JqejB8cYi0EcV4lGX47xRZochWNE7WuZ DnKQQ8oRXCvd2eLOIb9yvzWHopGj+uZQ/haRfwqWo0kjxxwLcnCyMB3kIAc5yEEO cpBjvgU5yEEOBI7xFkwH03FFjikWTAfTQQ5OFqaDHOTYj2OWxXIcEyEWTQc5yMHa wXRofluWHMmf2iXHZI4/WRmimJUqjn0AAAAASUVORK5CYII="
width="90"
y="0"
x="0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

58
Assignment_2/report/res/exp_1_o.pdf_tex

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.3, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'exp_1_o.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{67.49999915bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,1)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{exp_1_o.pdf}}%
\end{picture}%
\endgroup%

116
Assignment_2/report/res/exp_1_o.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 33 KiB

58
Assignment_2/report/res/exp_2_c.pdf_tex

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.3, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'exp_2_c.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{67.49999915bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,1)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{exp_2_c.pdf}}%
\end{picture}%
\endgroup%

116
Assignment_2/report/res/exp_2_c.svg

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="23.8125mm"
height="23.8125mm"
viewBox="0 0 23.8125 23.8125"
version="1.1"
id="svg1023"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="exp_2_c.svg">
<defs
id="defs1017">
<clipPath
id="clipPath1"
clipPathUnits="userSpaceOnUse">
<path
id="path1026"
d="M 0,0 H 276 V 181 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath2"
clipPathUnits="userSpaceOnUse">
<path
id="path1029"
d="M 0,0 H 90 V 90 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="2.3642503"
inkscape:cy="32.026843"
inkscape:document-units="mm"
inkscape:current-layer="g1045"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1025"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata1020">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-79.299405,-148.92782)">
<g
style="font-style:normal;font-weight:normal;font-size:12px;font-family:Dialog;color-interpolation:auto;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto"
id="g1073"
transform="matrix(0.26458333,0,0,0.26458333,54.957739,141.51949)">
<g
id="g1045">
<defs
id="defs1">
<clipPath
id="clipPath1059"
clipPathUnits="userSpaceOnUse">
<path
id="path1057"
d="M 0,0 H 276 V 181 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
<clipPath
id="clipPath1063"
clipPathUnits="userSpaceOnUse">
<path
id="path1061"
d="M 0,0 H 90 V 90 H 0 Z"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<g
id="g1043"
style="color-interpolation:sRGB;fill:#000000;fill-opacity:0;stroke:#000000;stroke-opacity:0;color-rendering:optimizeSpeed;image-rendering:optimizeSpeed;shape-rendering:crispEdges;text-rendering:optimizeSpeed"
transform="translate(92,28)">
<image
id="image1041"
clip-path="url(#clipPath2)"
preserveAspectRatio="none"
height="90"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAIAAAC3ytZVAAACyklEQVR42u2cS3Ir IQxFtZAMXtacBWT09pmMOq6GFldfwKiKgWOnDZzW5yJw07/Pj2pXo7Sevr7/F46y jsKxl0cUjnKWZBwbGcLvUMHR0sQhLoLj9aNTnGV161gEx+39o0Npy4hOZlE4/kB0 3YdOs4KLxVnWcc329uKVQkuE8oNWjuK4WUHXKKbhmBUdQCLXn7S7cLLgaOnQ7qsM HYunRgnjyzQNCwsBjjeLGqfgCHEW0FbXLHlMwMHo3GFxgRGFEUS6A3N2ltfvbV8w U219OC4S33rh1boehzSZD+9bnDyXziIKh++dN0qyaThyQoOLokvFMTfvIF3n4Vhn ySMNH++MYzgez0Q7BDEdzXAAniJ9Cg7fL/QsDiLO4u4+TCFLHVAdcICxw91AEByi Tm//TEHLpOjwgW+78lfF4lCYtKU+LnXGYQU7KrM4pl4GdPv+nPMdTE0pLo52ceC9 dNe1bgca8GWL3Tp4z8dx3KypU0nXbQhJq0xB6uPJKvFqECfDFCkqFEfXqpFZda/l CxGPOPBCaaZ18EXwdvxIUaqPgwktovVPNA5ReRGxmnZ4xPseWPXMjB2I9lOogTuO ri8pFoWhOKS98BvUnVA6rAArpEcQDv62gxV/fsxknMasRCuSNkgycsABJnPfozJP 1j7UXdAunN068PKHVHp2k+IwwOExVYbDZQkjks+IalD4ZjYOvIAK7lTamz8OhcE7 xmPLdrz6Qjcc9njsiEN/oMHOwvHy4Sp+IRy69YtOR+TbhTMOtehw9PwkHIrdPXdd Wzhm4EDEtWVdu7d16Da1TnEWy9ERlyS9aOzI1KPbh1LHLFs4tsUhzbXn4lDvm56C YzsWhaNw+OIAo2nCD7VWxxF6BmBLHGm/4Sscq+JwPK9ROArH2+Nw2YguHKvToRVY rHPSilYDsdBD9vjt73rmYD2CsXBUKxyFo3AUDlP7Adb+mMHBu8EAAAAAAElFTkSu QmCC"
width="90"
y="0"
x="0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

58
Assignment_2/report/res/exp_2_o.pdf_tex

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.3, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'exp_2_o.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{67.49999915bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,1)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{exp_2_o.pdf}}%
\end{picture}%
\endgroup%

116
Assignment_2/report/res/exp_2_o.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 33 KiB

36
Assignment_2/tester.m

@ -1,35 +1,15 @@
image = imageT;
k = 3;
k = 4;
graph = Image2Graph(image);
%clusters = mySpectralClustering(graph, k);
clusters = myNCuts(graph, k);
%clusters = myNCuts(graph, k);
clusters = recursiveNCuts(graph);
clusters = reshape(clusters, size(image, 1), []);
redChannel = image(:, :, 1);
greenChannel = image(:, :, 2);
blueChannel = image(:, :, 3);
segImR = clusters;
segImG = clusters;
segImB = clusters;
%calculateNcut(graph, clusters);
unique(clusters)
for cluster = 1:k
meanR = mean(redChannel(clusters == cluster));
meanG = mean(greenChannel(clusters == cluster));
meanB = mean(blueChannel(clusters == cluster));
segImR(clusters == cluster) = meanR;
segImG(clusters == cluster) = meanG;
segImB(clusters == cluster) = meanB;
end
segIm = zeros(size(image, 1), size(image, 2), 3);
segIm(:, :, 1) = segImR;
segIm(:, :, 2) = segImG;
segIm(:, :, 3) = segImB;
imshow(segIm)
clusters = reshape(clusters, size(image, 1), []);
imshow(meanClustersColorRGB(imageT, clusters))
clearvars segImR segImG segImB meanR meanG meanB graph redChannel ...
greenChannel blueChannel clusters k image cluster segIm
clearvars graph clusters k image
Loading…
Cancel
Save