ΜΗΧΑΝΙΚΗ ΟΡΑΣΗ. 3η ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

Σχετικά έγγραφα
ΜΗΧΑΝΙΚΗ ΟΡΑΣΗ. 2η ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

ΜΗΧΑΝΙΚΗ ΟΡΑΣΗ. 1η ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών. «Προηγμένα Συστήματα Παραγωγής, Αυτοματισμού και. Ρομποτικής» Assignment 2

ΖΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΔΠΜΣ Προηγμένα Συστήματα Παραγωγής, Αυτοματισμού και Ρομποτικής

ADVANCES IN DIGITAL AND COMPUTER VISION

ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ

ΜΑΘΗΜΑ 2, Έλεγχος ροής προγράμματος ΒΑΣΙΚΗ ΣΥΝΤΑΞΗ:

Συστήματα Αυτομάτου Ελέγχου

Μάθημα: Μηχανική Όραση

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 9: Συναρτήσεις Εμβέλεια

ΠΠΜ 501: Προχωρημένη Ανάλυση Κατασκευών με Η/Υ

242 -ΕισαγωγήστουςΗ/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 3: Αποκατάσταση Εικόνας.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Work12 REMARKS script file lab10 ask1-5 tabbing, ls2, urlparse, times, dates_correct

ADVANCES IN DIGITAL AND COMPUTER VISION

Εισαγωγή στον Προγραμματισμό με C++

Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2)

Εισαγωγή στον Προγραμματισμό με C++

Συστήματα Αυτομάτου Ελέγχου

Εργασία επεξεργασίας εικόνων, που αναπαριστούν τομή εγκεφάλου και τομή αδένα προστάτη

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

Προσομοίωση (simulation) στο Matlab

Συστήματα Αναμονής (Queuing Systems)

Ασκήσεις 5ο Μάθημα - Λύσεις

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

"ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ" (ΕΜ102), ΕΡΓΑΣΙΑ 1η

Δομημένος Προγραμματισμός

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό

Δομημένος Προγραμματισμός

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ

Ακαδηµαϊκό Έτος , Χειµερινό Εξάµηνο ιδάσκων Καθ.: Νίκος Τσαπατσούλης

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

Advances in Digital Imaging and Computer Vision

ΑΤΣΑΛΑΚΗ ΞΑΝΘΟΥΛΑ ΕΡΓΑΣΤΗΡΙΟ 2

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

6-Aνίχνευση. Ακμών - Περιγράμματος

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

Τα συγκεντρωτικά ερωτήματα αφορούν στην ομαδοποίηση των δεδομένων και στη. χρήση συναρτήσεων ομαδοποίησης κατά την εκτέλεση ενός ερωτήματος προβολής

ΠΟΛΥ ΜΕΓΑΛΗ : ΜΕΓΑΛΗ : ΜΕΣΑΙΑ: ΜΙΚΡΗ

Δομημένος Προγραμματισμός (ΤΛ1006)

Ε.Α.Υ. Υπολογιστική Όραση. Κατάτμηση Εικόνας

. Βάθος χρώματος: Πραγματικό χρώμα. . Βάθος χρώματος: Αποχρώσεις του γκρίζου 8bit. . Βάθος χρώματος: Αποχρώσεις του γκρίζου 1bit.

Εφαρμοσμένα Μαθηματικά 3η εργαστηριακή άσκηση

Τεχνητή Νοημοσύνη ΙΙ. Εργαστηριακή Άσκηση 2. Μουστάκας Κωνσταντίνος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

Προγραμματισμός ΙI (Θ)

Αποτελέσματα. ΜΟΔΙΠ Πανεπιστημίου Κρήτης Ερωτηματολόγιο 'Γλώσσα Προγραμματισμού ΙΙ' Ερωτηματολόγιο

Εργαστήριο ADICV1. Image Boundary detection and filtering. Κώστας Μαριάς 13/3/2017

ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ

Σύντομη Αναφορά σε Βασικές Έννοιες Ψηφιακής Επεξεργασίας Σημάτων

Εισαγωγή στον Προγραμματισμό με C++

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++

Δομημένος Προγραμματισμός (ΤΛ1006)

Generics και ArrayLists

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 2: Βελτιστοποίηση Εικόνας.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ Η ΣΥΝΟΡΘΩΣΗ ΤΩΝ ΟΡΙΖΟΝΤΙΩΝ ΔΙΚΤΥΩΝ (ΤΟ ΣΥΣΤΗΜΑ ΤΩΝ ΚΑΝΟΝΙΚΩΝ ΕΞΙΣΩΣΕΩΝ)

Η ΕΕΧ στα MME. Επιστολή προς τον Πρωθυπουργό για τη χρήση δακρυγόνων. 22 Ιανουαρίου Επιμέλεια: Δρ Σπύρος Κιτσινέλης Υπεύθυνος Επικοινωνίας ΕΕΧ

Αντικειμενοστραφής Προγραμματισμός

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

ΜΕΛΕΤΗ Σ.Α.Ε. µε χρήση του CONTROL SYSTEM TOOLBOX του MATLAB

Τεχνογλωσσία 8 Β' Εξάμηνο. Λογικός Προγραμματισμός Prolog. Άσκηση: Διορθωτής Εκφράσεων

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΣΚΗΣΗ 8 Η εξίσωση της απομάκρυνσης x συναρτήσει του χρόνου t σε μια απλή αρμονική ταλάντωση δίνεται από τη σχέση:

Θέµα 1 (15%): (απαιτούµενος χρόνος < 15 λεπτά)

10 ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Δομημένος Προγραμματισμός

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

ΙΑΤΡΙΚΗ ΑΠΕΙΚΟΝΙΣΗ & ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΙΑΤΡΙΚΗΣ ΕΙΚΟΝΑΣ

Δομημένος Προγραμματισμός

Εργαστήριο ADICV. Fourier transform, frequency domain filtering and image restoration. Κώστας Μαριάς 3/4/2017

Εργαστήριο ADICV2. Image filtering. Κώστας Μαριάς

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

ADVANCES IN DIGITAL AND COMPUTER VISION

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 3)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ

Δομημένος Προγραμματισμός

5 ο Εργαστήριο Δομές Επανάληψης (συνέχεια)

Εργαστήριο ADICV3. Image filtering, Point Processing and Histogram Equalisation. Κώστας Μαριάς 20/3/2017

bab.la Φράσεις: Ταξίδι Τρώγοντας έξω ελληνικά-ελληνικά

ιαδικαστικός Προγραμματισμός

ΚΛΑΣΕΙΣ ΜΕΘΟΔΟΙ - ΑΝΤΙΚΕΙΜΕΝΑ

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΕΑΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Εισαγωγή στον Προγραμματισμό με C++

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

Ηβασικήσυνάρτηση προγράμματος main()

Αʹ. Πίνακες. Άσκηση 1. Λύση. Άσκηση 2. Λύση. Ασκήσεις Εργαστηρίου Προγραμματισμού

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ - ΡΟΜΠΟΤΙΚΗ

Νοέμβριος 2005 Σ. Φωτόπουλος ΨΕΕ κεφ.4 ΑΝΙΧΝΕΥΣΗ ΑΚΜΩΝ ΔΠΜΣ ΗΕΠ 1/53

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ ΑΥΤΟΜΑΤΙΣΜΟΥ & ΡΟΜΠΟΤΙΚΗΣ 01 ΜΗΧΑΝΙΚΗ ΟΡΑΣΗ 3η ΕΡΓΑΣΙΑ ΣΠΟΥΔΑΣΤΕΣ: ΕΙΣΗΓΗΤΗΣ ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΑΜ: ΜΗ62 ΔΡ ΜΑΚΡΗΣ ΑΛ. ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ ΑΜ: ΜΗ69 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2016-2017

02 ΑΣΚΗΣΗ 1 a) Στην παρούσα εργασία ζητείται να συνταχθεί ένας απλός blob detector μέσω μιας function. Η συνάρτηση του ανιχνευτή αυτού θα έχει ως είσοδο μια εικόνα και μια ακτίνα του κύκλου και θα επιστρέφει τους κύκλους της εικόνα που έχουν την συγκεκριμένη ακτίνα. Εν αντιθέση με την εκφώνηση της άσκησης που ζητάει η συνάρτηση να επιστρέφει τις συντεταγμένες των κέντρων του κύκλου, επιλέχθηκε να γίνει οπτικοποίηση του αποτελέσματος στην εικόνα. Το script που αναπτύχθηκε είναι το παρακάτω: clear all; clc; %καθαραρίζουμε το ιστορικό I=imread('black_dots.jpg'); %εισάγουμε την εικόνα r=50; %ορίζουμε την ακτίνα των κύκλων C=blobdetector(I,r) %εισάγουμε τα δεδομένα στην function C; %ζητάμε να εκτυπωθούν τα κέντρα Η function blobdetector είναι η παρακάτω: function [ C ] = blobdetector( I, r ) I_gr = rgb2gray(i); %μετατρέπουμε την εικόνα I_gr=im2uint8(I_gr); %μετατρέπουμε την εικόνα sigma=r/sqrt(2); %ορίζουμε το σ= r 2 hsize=[10, 10]; %ορίζουμε το μέγεθος του φίλτρου I_double=double(I_gr); %μετατρέπουμε την εικόνα figure(1); imshow(i); %εμφανίζουμε την αρχική εικόνα Fsx=sigma^2*fspecial('log',hsize,sigma); %δημιουργούμε το φίλτρο I_fil = imfilter(i_double,fsx); %φιλτράρουμε την εικόνα I_fil_thr=I_fil>0.22; %εφαρμόζουμε κατωφλίωση figure(2); imshow(i_fil_thr); %εμφανίζουμε την κατωφλιωμένη εικόνα S=regionprops(I_fil_thr,'centroid'); %βρίσκουμε τα κέντρα των κύκλων centroids=cat(1,s.centroid); %και τα εμφανίζουμε imshow(i_fil_thr); hold on C=[centroids(:,1),centroids(:,2)]; plot(centroids(:,1),centroids(:,2),'g*') ; R(1:size(centroids,1),1) = r; %σχεδιάζουμε κόκκινους κύκλους PTS = int16([c R]); %γύρω από τα σημεία που βρήκαμε red = uint8([255 0 0]); %σαν κέντρα των κύκλων J = vision.shapeinserter('shape', 'Circles', 'BorderColor','Custom','CustomBorderColor', red); Y = step(j, I, PTS); imshow(y); %εμφανίζουμε το αποτέλεσμα ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 1

Οι εικόνες που πήραμε για την πάνω συνάρτηση είναι οι παρακάτω δύο εικόνες: Για την εικόνα circles_01 δηλώσαμε: r=45, hsize=2*r και I_fil_thr=I_fil>20 και πήραμε: Για την εικόνα circles_02 δηλώσαμε: r=15, hsize=2*r και I_fil_thr=I_fil>30 και πήραμε: ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 2

Η ίδια διαδικασία έγινε και με τις υπόλοιπες εικόνες. b) Στο δεύτερο ερώτημα ζητείται να προστεθεί μια επιπλέων παράμετρος που ο χρήστης θα επιλέγει αν θέλει να εμφανίζονται οι σκούροι κύκλοι (επιλογή =1), οι ανοιχτόχρωμοι κύκλοι (επιλογή=2) ή όλοι οι κύκλοι (επιλογή 3) Το script και η function τροποποιήθηκε ως κάτωθι: clear all; clc; I=imread('white_dots.jpg'); r=25; t=2 C=blobdetector2(I,r,t) 03 I_gr = rgb2gray(i); I_gr=im2uint8(I_gr); sigma=r/sqrt(2); hsize=2*r; I_double=double(I_gr); figure(1); imshow(i); Fsx=sigma^2*fspecial('log',hsize,sigma); I_fil = imfilter(i_double,fsx); if t==1 I_fil_thr=I_fil>25; else if t==2 I_fil_thr=I_fil<-25; else I_fil_thr=(I_fil<-0.22 & I_fil>0.22); figure(2); imshow(i_fil_thr); S=regionprops(I_fil_thr,'centroid'); centroids=cat(1,s.centroid); imshow(i_fil_thr); hold on C=[centroids(:,1),centroids(:,2)]; plot(centroids(:,1),centroids(:,2),'g*') ; R(1:size(centroids,1),1) = r; PTS = int16([c R]); red = uint8([255 0 0]); J = vision.shapeinserter('shape', 'Circles', 'BorderColor','Custom','CustomBorderColor', red); Y = step(j, I, PTS); imshow(y); 04 Τα αποτελέσματα που πήραμε για όταν τρέξαμε το παραπάνω script ήταν οι εξής δύο εικόνες: ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 3

Επαναλήφθηκε η ίδια διαδικασία με όλες τις εικόνες όπως στο προηγούμενο ερώτημα και πήραμε τα ίδια αποτελέσματα. c) Στο τρίτο ερώτημα ζητείται να δίνει ο χρήστης ένα εύρος τιμών ακτινών και η function να επιστρέφει όλους τους κύκλους που εντοπίζονται στην εικόνα 05 clear all; clc; I=imread('coins.jpg'); I_gr=im2uint8(I); Isize=size(I_gr); if (length(isize)==3) I_gr=rgb2gray(I_gr); r_min=25; r_max=30; I_double=double(I_gr); figure(1); imshow(i); count=1; for i=r_min:r_max r=i; sigma=r/sqrt(2); hsize=2*r; Fsx=sigma^2*fspecial('log',hsize,sigma); I_fil = imfilter(i_double,fsx); I_fil_thr=I_fil<-20; E(:,:,count)=I_fil_thr; count=count+1; S = regionprops(e, 'centroid'); centroids=cat(1,s.centroid); figure(3) imshow(i); hold on C=[centroids(:,1),centroids(:,2)]; ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 4

plot(centroids(:,1),centroids(:,2),'g*') ; R(1:size(centroids,1),1) = r; PTS = int16([c R]); red = uint8([255 0 0]); J = vision.shapeinserter('shape', 'Circles', 'BorderColor','Custom','CustomBorderColor', red); RGB = repmat(i,[1,1,3]); Y = step(j, I, PTS); figure(4) imshow(y); 06 Οι τρείς εικόνες που πήραμε είναι: ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 5

07 ΑΣΚΗΣΗ 2 Στην παρούσα άσκηση ζητήθηκε να εντοπιστούν κύκλοι σε εικόνες με δεδομένη ακτίνα μέσω του μετασχηματισμού Hough και να οπτοικοποιηθεί το αποτέλεσμα. Συντάχθηκε το παρακάτω script: clear all; clc; %καθαρίζουμε το ιστορικό I=imread('circles_05.jpg'); %εισάγουμε την εικόνα r=18; %θέτουμε την ακτίνα των κύκλων Isize=size(I); %μετατρέπουμε την εικόνα if (length(isize)==3) I=rgb2gray(I); I_d=double(I); %μετατρέπουμε την εικόνα σε double a=min(min(i_d)); %βρίσκουμε το ελάχιστο b=max(max(i_d)); %και το μέγιστο In=(I_d - a) * 255 / (b - a); %για να κάνουμε κανονικοποίηση fsxg=fspecial('gaussian',[3,3],0.5); % ορίζουμε το Gaussian φίλτρο fsxs= fspecial('sobel'); %ορίζουμε το sobel φίλτρο Ix=imfilter(fsxg,fsxs); %φίλτρο παραγώγισης ως προς x Iy=imfilter(fsxg,fsxs') ; %Φίλτρο παραγώγισης ως προς y Im1=imfilter(In,Ix); Im2=imfilter(In,Iy); Im3=sqrt(Im1.^2+Im2.^2); Im3=Im3>235; figure(1) %εμφανίζουμε την εικόνα imshow(im3) hough=im3.*0; %φτιάχνουμε έναν μηδενικό πίνακα [K2,K1]=find(Im3); x=length(k1); for i=1:x hough=addcircle(hough,r,k1(i),k2(i),0.011); %ψηφίζουμε figure(2) imshow(hough) hough=hough>0.30; %κατωφλιώση S = regionprops(hough, 'centroid'); centroids=cat(1,s.centroid); figure(3) imshow(i); hold on C=[centroids(:,1),centroids(:,2)]; plot(centroids(:,1),centroids(:,2),'g*') ; R(1:size(centroids,1),1) = r; PTS = int16([c R]); red = uint8([255 0 0]); J = vision.shapeinserter('shape', 'Circles', 'BorderColor','Custom','CustomBorderColor', red); RGB = repmat(i,[1,1,3]); Y = step(j, RGB, PTS); figure(4) imshow(y); ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 6

Πήραμε τις παρακάτω εικόνες: Επαναλάβαμε το script με την εικόνα black_dots με r=50 και threshold= 0.65 και πήραμε: ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 7

Επαναλάβαμε το script με την εικόνα circle_03 με r=75 και threshold= 0.70 και πήραμε: Κάναμε την ίδια διαδικασία με τις υπόλοιπες εικόνες και πήραμε το ίδιο αποτέλεσμα. ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 8

b) Στο δεύτερο ερώτημα ζητείται να γίνει η ίδια διαδικασία με διάφορες τιμές ακτίνων: Συντάχθηκε το παρακάτω script: clear all; clc; I=imread('coins.jpg'); I=im2uint8(I); Isize=size(I); if (length(isize)==3) I=rgb2gray(I); r_min=25; r_max=30; count=1; for r=r_min:r_max I_d=double(I); a=min(min(i_d)); b=max(max(i_d)); In=(I_d - a) * 255 / (b - a); fsxg=fspecial('gaussian',[3,3],0.5); fsxs= fspecial('sobel'); Ix=imfilter(fsxg,fsxs); Iy=imfilter(fsxg,fsxs') ; Im1=imfilter(In,Ix); Im2=imfilter(In,Iy); Im3=sqrt(Im1.^2+Im2.^2); Im3=Im3>235; figure(1) imshow(im3) hough=im3.*0; [K2,K1]=find(Im3); x=length(k1); for i=1:x hough=addcircle(hough,r,k1(i),k2(i),0.011); figure(2) imshow(hough) hough=hough>0.9; E(:,:,count)=hough; count=count+1; S = regionprops(e, 'centroid'); centroids=cat(1,s.centroid); figure(3) imshow(i); hold on C=[centroids(:,1),centroids(:,2)]; plot(centroids(:,1),centroids(:,2),'g*') ; R(1:size(centroids,1),1) = r; PTS = int16([c R]); red = uint8([255 0 0]); J = vision.shapeinserter('shape', 'Circles', 'BorderColor','Custom','CustomBorderColor', red); RGB = repmat(i,[1,1,3]); Y = step(j, RGB, PTS); figure(4) imshow(y); ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 9

08 Ουσιαστικά είναι επανάληψη του πρώτου script με την διαφορά ότι μπαίνει σε μια επανάληψη η διαδικασία προκειμένου να γίνει ανάλυση για κάθε τιμή της ακτίνας. Τα αποτελέσματα που πήραμε είναι τα παρακάτω: Επαναλάβαμε το ίδιο script για την εικόνα circles_04.jpg με r_min=20 και r_max=35 καθώς και threshold 0.33 και πήραμε τις παρακάτω εικόνες: ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 10

c) Στο τρίτο ερώτημα ζητείται να χρησιμοποιηθεί η διεύθυνση gradient προκειμένου να μειωθεί ο θόρυβος. Συντάχθηκε το παρακάτω script: clear all;clc; I=imread('circles_05.jpg') r=18; Isize=size(I); if (length(isize)==3) I=rgb2gray(I); I_d=double(I); a=min(min(i_d)); b=max(max(i_d)); In=(I_d - a) * 255 / (b - a); fsxg=fspecial('gaussian',[3,3],0.5); fsxs= fspecial('sobel'); Ix=imfilter(fsxg,fsxs); Iy=imfilter(fsxg,fsxs') ; Im1=imfilter(In,Ix); Im2=imfilter(In,Iy); Im3=sqrt(Im1.^2+Im2.^2); theta=atan(im2./im1); Im3=Im3>240; figure(1) imshow(im3) dx=floor(r.*cos(theta)); dy=floor(r.*sin(theta)); hough=im3.*0; [K2,K1]=find(Im3); x=length(k1) for i=1:x q1=k2(i)+dx(k2(i),k1(i)) q2=k1(i)+dy(k2(i),k1(i)); q3=k2(i)-dx(k2(i),k1(i)); q4=k1(i)-dy(k2(i),k1(i)); if (((q1<size(im3,1)) && (q2>0)) && (q2<size(im3,2))) hough(q1,q2)=hough(q1,q2)+0.1; if ((q3>0) && (q4>0) && (q4<size(im3,1))) hough(q3,q4)=hough(q3,q4)+0.1; ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 11

hf= fspecial('average'); hough=imfilter(hough,hf); figure(2) imshow(hough) hough=hough>0.20; S = regionprops(hough, 'centroid'); centroids=cat(1,s.centroid); figure(3) imshow(i); hold on C=[centroids(:,1),centroids(:,2)]; plot(centroids(:,1),centroids(:,2),'g*') ; R(1:size(centroids,1),1) = r; PTS = int16([c R]); red = uint8([255 0 0]); J = vision.shapeinserter('shape', 'Circles', 'BorderColor','Custom','CustomBorderColor', red); RGB = repmat(i,[1,1,3]); Y = step(j, RGB, PTS); figure(4) imshow(y); Οι εικόνες που πήραμε: ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 12

Για την εικόνα ciracles_02.jpg και για r=15 πήραμε: Έγινε η ίδια διαδικασία και με τις υπόλοιπες εικόνες και πήραμε παρόμοια αποτελέσματα. ΔΗΜΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ ΧΑΡΚΙΟΛΑΚΗΣ ΜΙΧΑΛΗΣ 13

Annotations Μηχανικη οραση 3 01 Page 1 10/2/2017 10:52 B: 8/10 02 Page 2 10/2/2017 10:36 2/3 03 Page 4 10/2/2017 10:25 To threshold edw den fainetai swsto, giati einai diaforetiko stin 3i periptwsi; 04 Page 4 10/2/2017 10:27 Edw den fainetai an douleuoun oi 3 epiloges. 05 Page 5 10/2/2017 10:36 To threshold edw sas diagrafei oli tin pliroforia gia to megethos tou kathe 'peak'. 06 Page 6 10/2/2017 10:29 Ta kentra einai ok alla oi aktines twn blobs lathos. 07 Page 7 10/2/2017 10:51 6/7 08 Page 11 10/2/2017 10:51 Kai edw fainetai oti i aktina den exei ektimithei swsta, pithanotata gia ton idio logo me prin.