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

Σχετικά έγγραφα
ADVANCES IN DIGITAL AND COMPUTER VISION

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

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

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

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

ADVANCES IN DIGITAL AND COMPUTER VISION

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

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

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

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

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

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

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

D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004.

How to register an account with the Hellenic Community of Sheffield.

Εργαστήριο ADICV2 Labs 2-6

Assignment 1. ι ό αος α ά ς Page1

Advances in Digital Imaging and Computer Vision

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

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

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

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

Homework 3 Solutions

Instruction Execution Times

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004.

Κατάτµηση Εικόνων: Ανίχνευση Ακµών και Κατάτµηση µε Κατωφλίωση

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

Areas and Lengths in Polar Coordinates

Advances in Digital Imaging and Computer Vision

FSM Toolkit Exercises

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

2 Composition. Invertible Mappings

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

Areas and Lengths in Polar Coordinates

References. Chapter 10 The Hough and Distance Transforms

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

ΑΝΤΩΝΙΟΣ ΛΥΡΩΝΗΣ ΧΑΝΙΑ Σκοπός Εργασίας Εντοπισμός πλίνθων σε σειρά ορθοφωτογραφιών και εξαγωγή δισδιάστατης αποτύπωσης των τειχών.

5-1. Industrial Vision. Machine Vision Systems : Image Acquisition Image processing Analysis/Exploitation

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ADVANCES IN DIGITAL AND COMPUTER VISION

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

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Απλός Προγραµµατισµός στην R

Approximation of distance between locations on earth given by latitude and longitude

Αβδέλαρου Κωνσταντίνα

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

CHAPTER 12: PERIMETER, AREA, CIRCUMFERENCE, AND 12.1 INTRODUCTION TO GEOMETRIC 12.2 PERIMETER: SQUARES, RECTANGLES,

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

ST5224: Advanced Statistical Theory II

Εισαγωγή στην Αριθμητική Ανάλυση

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

The Simply Typed Lambda Calculus

0 Τα ηλεκτρικά κυκλώματα ως συστήματα Παράδειγμα Ηλεκτρ. Συστήματος πρώτης τάξης: κύκλωμα «RC» με Εξοδο

Math221: HW# 1 solutions

Πτυχιακή Εργασι α «Εκτι μήσή τής ποιο τήτας εικο νων με τήν χρή σή τεχνήτων νευρωνικων δικτυ ων»

Other Test Constructions: Likelihood Ratio & Bayes Tests

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Modbus basic setup notes for IO-Link AL1xxx Master Block

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

w o = R 1 p. (1) R = p =. = 1

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Επεξεργασία εικόνας. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #08

Digital Image Processing

Advances in Digital Imaging and Computer Vision

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

Fractional Colorings and Zykov Products of graphs

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

Second Order RLC Filters

Section 7.6 Double and Half Angle Formulas

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

Notes on the Open Economy

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 17

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

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

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

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

Repeated measures Επαναληπτικές μετρήσεις

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

1) Formulation of the Problem as a Linear Programming Model

DERIVATION OF MILES EQUATION FOR AN APPLIED FORCE Revision C

Transcript:

ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ 01 10/02/2017 Unknown Assignment 3 ΟΜΑΔΑ 2 Δημήτρης Βοσκάκης (mth76@edu.teicrete.gr) Νικόλαος Βαρδάκης (mth75@edu.teicrete.gr) ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ Κ.Αλέξανδρος Μακρής Page1

Contents Exercise 1... 3 Θεωρητική Ανάλυση... 3 Ανάπτυξη του Μαθηματικού Μοντέλου και ερμηνεία του προγράμματος... 3 Εφαρμογές Αποτελέσματα... 6 Exercise 2... 12 Θεωρητική Ανάλυση... 12 Ανάπτυξη του Μαθηματικού Μοντέλου στο πρόγραμμα... 12 Εφαρμογές Αποτελέσματα... 16 Βιβλιογραφική Αναφορά:... 25 Page2

02 10/02/2017 Unknown Exercise 1 a) Develop a simple 'blob' detector. The detector takes as arguments an image and the blob radius and return the detected blob positions. The detector should use the LoG filter so the possible detections are the local minima and maxima of the filter response. b) Add an extra parameter to the detector to select either: i) dark blobs, ii) light blobs, or iii) both. c) Ext the detector so instead of a single radius it accepts a range (min, max). Test the detector firstly in the images 'black_dots.jpg', 'white_dots.jpg' and then also in 'coins.tiff' and 'circles_%%.jpg'. Present the results by showing the detected blobs in the initial images. Θεωρητική Ανάλυση Η αρχή ανίχνευσης των Blob βασίζεται στο φιλτράρισμα της εικόνας με την συνάρτηση Λαπλασιανή της Γκαουσιανής LoG με διάφορες Τυπικές Αποκλίσεις. Η ακτίνα που αντιστοιχεί στην Τυπική Απόκλιση που δίνει μέγιστη απόκριση του φιλτραρίσματος είναι και ακτίνα ενός Blob. Για ευκολότερη σύγκριση των αποκρίσεων, κάθε φιλτράρισμα με την LoG τοποθετείται πάνω από το προηγούμενο έτσι ώστε να δημιρουργηθεί ένας τρισδιάστατος πίνακας. Ανάπτυξη του Μαθηματικού Μοντέλου και ερμηνεία του προγράμματος Ο παρακάτω βρόγχος ορίζει την εικόνα I όπου πρόκειται να ανιχνευθούν τα Blob με τη μορφή μενού. Σε κάθε εικόνα έχει οριστεί ένα διάνυσμα r=rmin:rstep:rmax και ένας συντελεστής ct που θα χρησιμοποιηθεί αργότερα για το threshold, έτσι ώστε να ανιχνευθούν περισσότερα Blob. Έπειτα καλεί τη συνάρτηση BlobDetector(I, r, ct) που ανιχνεύει τα Blob. while (1) button = menu('choose image:', 'circles_01.jpg', 'circles_02.jpg', 'circles_03.jpg',... 'circles_04.jpg','circles_05.jpg', 'black_dots.jpg', 'white_dots.jpg',... 'coin_01.tiff', 'coin_02.tiff','coins.tiff', 'CLOSE'); switch button case 1 clear, close all, basefilename = 'circles_01.jpg'; rmin=8; rmax=80; rstep=4; ct=0.2; % Threshold coefficient case 2 clear, close all, basefilename = 'circles_02.jpg'; rmin=8; rmax=80; rstep=4; ct=0.2; % Threshold coefficient case 3 clear, close all, basefilename = 'circles_03.jpg'; rmin=8; rmax=112; Page3

rstep=8; ct=0.2; % Threshold coefficient case 4 clear, close all, basefilename = 'circles_04.jpg'; rmin=8; rmax=80; rstep=4; ct=0.88; % Threshold coefficient case 5 clear, close all, basefilename = 'circles_05.jpg'; rmin=8; rmax=80; rstep=4; ct=0.2; % Threshold coefficient case 6 clear, close all, basefilename = 'black_dots.jpg'; rmin=6; rmax=56; rstep=10; ct=0.8; % Threshold coefficient case 7 clear, close all, basefilename = 'white_dots.jpg'; rmin=18; rmax=48; rstep=10; ct=0.8; % Threshold coefficient case 8 clear, close all, basefilename = 'coin_01.tiff'; rmin=2; rmax=34; rstep=1; ct=0.8; % Threshold coefficient case 9 clear, close all, basefilename = 'coin_02.tiff'; rmin=2; rmax=34; rstep=1; ct=0.8; % Threshold coefficient case 10 clear, close all, basefilename = 'coins.tiff'; rmin=2; rmax=58; rstep=1; ct=0.8; % Threshold coefficient case 11 break; r=rmin:rstep:rmax; I = imread(basefilename); BlobDetector(I, r, ct); Για την BlobDetector(I, r, ct): rmin=r(1); rstep=r(2)-r(1); rmax=r(numel(r)); si=size(i); nsi=numel(si); switch nsi case 3 Ig = double(rgb2gray(i)); case 2 Ig = double(i); % Filter image with LoG sig=size(ig); Page4

sigx=sig(1); sigy=sig(2); Μετατρέπει την εικόνα σε Gray Scale και λαμβάνει τις διαστάσεις της. nr = numel(r); s=r/sqrt(2); Ορίζει μια Τυπική Απόκλιση για κάθε ακτίνα σύμφωνα με τον τύπο: σ=r/sqrt(2). Ο βρόγχος: hsize = 6*[round(max(s)) round(max(s))]; for k=1:nr; % Ftiaxnei se ka8e epipedo thn LoG h = (s(k).^2).*fspecial('log', hsize, s(k)); Igb(:,:,k) = imfilter(ig,h); %Gray Image with LoG Filter φιλτράρει με την LoG την εικόνα με διάφορες Τυπικές Αποκλίσεις. Τα αποτελέσματα τα τοποθετεί στον πίνακα Igb, όπου κάθε επίπεδό του αντιστοιχεί στο φιλτράρισμα μιας τυπικής Απόκλισης, και κατά συνέπεια μιας ακτίνας Blob. Με την εντολή: button2 = menu('choose Blob type:', 'Light Blobs', 'Dark Blobs', 'All Blobs',... 'All cases in subplot'); και τον έλεγχο: switch button2 ο χρήστης μπορεί να επιλέξει αν ο BlobDetectror θα του εμφανίσει τα Φωτεινά Blob, τα Σκούρα Blob, όλα τα Blob ή όλα τα παραπάνω υπό μορφή subplot. Σε περίπτωση που το button2 = 1, δηλαδή ο χρήστης έχει επιλέξει τα φωτεινά Blob τρέχουν οι παρακάτω εντολές: figure(1) imshow(i); title('original Image.'); figure(2) BW = logical(igb<-thr); Στον πίνακα BW βάζει 1 όπου ισχύει: Igb<-thr. Αυτά τα σημεία είναι τα Φωτεινά Blob ss = regionprops(bw, 'centroid'); centroids = cat(1, ss.centroid); Φτιάχνει τα κέντρα Βάρους των κοντινών φωτεινών Blob. imshow(bw(:,:,1)) Εμφανίζει τα κέντρα. hold on plot(centroids(:,1), centroids(:,2), 'b*') hold off Εμφανίζει τα κέντρα των Blob. kc=round(centroids(:,3)); rc=rmin+(kc-1)*rstep; Βρίσκει το επίπεδο που ανήκουν τα κέντρα και σε ποια ακτίνα αντιστοιχούν title('light blobs centers'); figure(3) circ = insertshape(i,'circle',[centroids(:,1), centroids(:,2), rc],'color','y'); imshow(circ); title(sprintf('light Blobs from rmin=%d to rmax=%d with rstep=%d', rmin,rmax, rstep)); Σχεδιάζει κύκλους με τα παραπάνω κέντρα και τις αντίστοιχες ακτίνες. Ομοίως και για τις άλλες περιπτώσεις: Η συνθήκη «BW = logical(igb>thr);» βρίσκει τα σκοτεινά Blob και η συνθήκη «BW = logical(igb>thr Igb<-thr);» τα βρίσκει όλα. Page5

Εφαρμογές Αποτελέσματα Για την εικόνα: circles_01.jpg Page6

Για την εικόνα: circles_02.jpg Για την εικόνα: circles_03.jpg Page7

Για την εικόνα: circles_04.jpg Για την εικόνα: circles_05.jpg Για την εικόνα: black_dots.jpg Page8

Για την εικόνα: white_dots.jpg Page9

Για την εικόνα: coin_01.tiff Για την εικόνα: coin_02.tiff Page10

Για την εικόνα: coins.tiff Page11

03 10/02/2017 Unknown Exercise 2 a) Develop a system that detects circular objects of known radius r in an image. For their detection you should implement the Hough transform. Visualize the detected objects on the initial image. Test your system using the images 'coins.tiff' and 'circles_%%.jpg'. b) Ext your system to detect circular objects within a given radius interval rmin-rmax. c) Use the gradient orientation to rer your system more robust to noise. Θεωρητική Ανάλυση O μετασχηματισμός Ηough είναι μια αποδοτική μέθοδος εξαγωγής χαρακτηριστικών γνωρισμάτων που χρησιμοποιούνται στην ανάλυση εικόνας. Σκοπός της συγκεκριμένης τεχνικής είναι η εύρεση λεπτομερειών μιας εικόνας με την διαδικασία της ψηφοφορίας. Η διαδικασία αυτή λαμβάνει μέρος σε ένα χώρο παραμέτρων όπου τα τοπικά μέγιστα στην εικόνας λαμβάνουν το μεγαλύτερο ποσοστό ψήφου. Ανάπτυξη του Μαθηματικού Μοντέλου στο πρόγραμμα. clear all;close all;clc img=imread('coins.tiff');%circles_01.jpg % img=rgb2gray(img); Imbin=edge(img); rmin=30;rmax=30; r=rmin:rmax; %r=50; thresh=rmax+pi; Όπως βλέπουμε από τον κώδικα παραπάνω διαβάζει την εικόνα στην πορεία μέσω της εντολής edge βρίσκει τις ακμές της εικόνας και τέλος ορίζει το διάνυσμα της εικονας που θέλουμε να του δώσουμε μάζι με το threshold που θα το χρησιμοποίησουμε παρακάτω. Μετά ορίζουμε το Gradient Orientation της εικόνας κάνοντας τις ίδιες ενέργειες που διδαχθήκαμε στο προηγούμενο μάθημα. %%%% Iplogismos Gradient magnitude & direcrtion %%%%%% % h=fspecial('gaussian',6,1); % I=im2double(img); % I=imfilter(I,h,'conv'); % sobx=[-1 0 1;-2 0 2;-1 0 1];%sobel παραγωγιση % soby=[1 2 1;0 0 0;-1-2 -1];%sobel παραγωγιση % N=im2double(I); % Grax=imfilter(N,sobx); % Gray=imfilter(N,soby); % Gradient=sqrt((Grax.*Grax)+(Gray.*Gray)); % theta=((atan2(gray,grax))*180)/pi; %Μετατροπή του gradient direction σε μοίρες. % [a b]=size(gradient); % for i=1:a Page12

% for j=1:b % if Gradient(i,j)>0.7 % NG(i,j)=1; % else % NG(i,j)=0; % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Το συγκεκριμένο κομμάτι της άσκησης είναι το πιο νευραλγικό γιατί εδώ αρχικοποιούμε τον πίνακα Hough όπου εκεί μέσα θα ψηφίσει αργότερα το πρόγραμμα με σκοπό να βρούμε τα τοπικά μέγιστα.πιο συγκεκριμένα: Α)Παίρνει τις συτεταγμένες των άσσων από τον πίνακα των ακμών. Β)Ορίζει το όριο ώστε να μην βγεί εκτός εικόνας κατά τη μέτρηση Γ)Χρησιμοποιεί τον τύπο του κύκλου χ^2+y^2=r^2 και βρίσκει τις πιθανά κέτρα της εικόνας ψηφίζοντας στον πίνακα Hough Δ)Στην πορεία βρίσκει τα τοπικά μέγιστα από τον πίνακα Hough και τα συγκρίνει,αυτά που πληρούν την συνθήκη είναι τα κέντρα της εικόνας for rad=1:length(r) %Psifizei Accumulator = zeros(size(imbin)); % arxikopoiei ton pinaka hough [yim xim] = find(imbin); % find x,y of edge pixels %%%[yim xim] = find(ng); numrow = size(imbin,1); % arithmos grammwn numcol = size(imbin,2); % arithmow sthlwn r2 = r.^2; % kanei tin praksi apeuthias for cnt = 1:numel(xIm) low=xim(cnt)-r(rad); high=xim(cnt)+r(rad); if (low<1) low=1; if (high>numcol) high=numcol; for x0 = low:high Page13

yoffset = sqrt(r2(rad)-(xim(cnt)-x0)^2); y01 = round(yim(cnt)-yoffset); y02 = round(yim(cnt)+yoffset); if y01 < numrow && y01 >= 1 Accumulator(y01,x0) = Accumulator(y01,x0)+1; if y02 < numrow && y02 >= 1 Accumulator(y02,x0) = Accumulator(y02,x0)+1; % VRiskei topika megista y0detect = []; x0detect = []; AccumulatorbinaryMax = imregionalmax(accumulator); [Potential_y0 Potential_x0] = find(accumulatorbinarymax == 1); Accumulatortemp = Accumulator - thresh; %vazei to threshold for cnt = 1:numel(Potential_y0) if Accumulatortemp(Potential_y0(cnt),Potential_x0(cnt)) >= 0 y0detect = [y0detect;potential_y0(cnt)]; x0detect = [x0detect;potential_x0(cnt)]; Στο παρακάτω κομμάτι του κώδικα επειδή είναι λογικό ο κώδικας να έβρισκε και άλλα κέντρα κοντά στα υπόλοιπα τότε ορίσαμε μια συνθήκη όπου τοποθετεί στα υπόλοιπα κέντρα την τιμή -1 με σκοπό να κρατήσουμε ένα μόνο κέντρο. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [a b]=size(x0detect); j=1; for i=1:(a-1) if abs(x0detect(i+1)-x0detect(i))<8 && abs(y0detect(i+1)-y0detect(i))<8 T(j,1)=x0detect(i); T(j,2)=y0detect(i); x0detect(i)=-1; Page14

y0detect(i)=-1; j=j+1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Για τον εντοπισμό των κύκλων ορίσαμε συνθήκη έτσι ώστε αν η τετμημένη και η τεταγμένη των κέντρων είναι διάφορο του -1 τότε να εμφανίζει τα κέντρα που βρήκαμε παραπάνω.στη συνέχεια αφαιρεί τις αρνητικές τιμές και δημιουργεί πίνακα ακτίνων ίσο με τον αριθμό των κέντρων που βρίσκει κάθε φορά. %%%%%%%%-----entopismos twn blobs-----%%%%%%%%%%%%% x0detect1=[];y0detect1=[]; for t=1:numel(x0detect) if (y0detect(t) > 0 && x0detect(t) > 0) % Afairei tis arnitikes times x0detect1= [x0detect1;x0detect(t)]; y0detect1= [y0detect1;y0detect(t)]; rr=0; for d=1:length(x0detect1) rr(d)=r(rad); rr=rr'; Τέλος στο συγκεκριμένο κομμάτι της άσκησης για δική μας επαλήθευση εμφανίζουμε τα κέντρα που βρίσκει ανάλογα με την ακτίνα που ψάχνει κάθε φορά,την εικόνα του πίνακα Hough με τα τοπικά μέγιστα που έχει βρει και τους κυκλους με την εκαστοτε ακτινα. % %%%%%%%%-----entopismos kentrwn kiklwn KAI emfanisi hough pinaka-----%%%%%%%%%%%%% figure(); imshow(imbinary),title(sprintf('kentra me akrina r=%d',r(rad))); hold on; plot(x0detect(:),y0detect(:),'x','linewidth',2,'color','r '); % figure; % imagesc(accumulator); figure circ = insertshape(img,'circle',[x0detect1(:), y0detect1(:), rr(:)],'color','r'); imshow(circ),title(sprintf('kentra me akrina r=%d',r(rad))); Page15

Εφαρμογές Αποτελέσματα A)Για την εικόνα: coins.tiff 04 10/02/2017 Unknown Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=30 Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=29 Page16

Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=28 B)Για την εικόνα circles_01.jpg Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=48 Page17

Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=47 Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=46 Page18

Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=45 Γ)Για την εικόνα circles_03.jpg Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=69 Page19

Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=68 Page20

Δ) Στην παρακάτων εικόνα (circles_01.jpg) βλέπουμε εμφάνιση του κέντρου του κυκλου μέσω του Gradient όπουμας ζητήθηκε στο 3 ο υποερώτημα ορίζοντας κάποιες παραμέτρους όπως: -Gauss size(6 ) Και sigma(1) αφού γνωρίζουμε ότι το μέγεθος πρέπει να είναι 6 φορές μεγαλύτερο του sigma -Threshold του Gradient >0.7 -Τέλος με διάνυσμα ακτίνας 44-46 Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=46 Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=45 Page21

Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=44 Page22

E)Στην παρακάτων εικόνα (circles_03.jpg)βλέπουμε εμφάνιση του κέντρου του κυκλου μέσω του Gradient όπουμας ζητήθηκε στο 3 ο υποερώτημα ορίζοντας κάποιες παραμέτρους όπως: -Gauss size(12 ) Και sigma(2) αφού γνωρίζουμε ότι το μέγεθος πρέπει να είναι 6 φορές μεγαλύτερο του sigma -Threshold του Gradient >0.3 -Τέλος με εύρος ακτίνας 78-80 Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=80 Page23

Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=79 Εκτίμηση κέντρων και εμφάνιση κύκλων για ακτίνα r=78 Page24

Βιβλιογραφική Αναφορά: 1. Forsyth 22.1, 10.1-10.4 2. Szeliski A.2, 4.3.2, 6.1.4 3. Lectures Alexandros Makris Page25

Annotations ΕΙΔΙΚΕΥΣΗΣ Assignment 3 Ρομποτικησ, Αυτοματισμου Κ Α Ι 01 Unknown Unknown Page 1 10/2/2017 11:13 B:8.5/10 02 Unknown Unknown Page 3 10/2/2017 11:00 3/3 03 Unknown Unknown Page 12 10/2/2017 11:13 5.5/7 04 Unknown Unknown Page 16 10/2/2017 11:10 -Me ton tropo pou entopizete tous kuklous (local max gia kathe r xwrista) den einai dunato na ginei swsta se diafores aktines to opoio fainetai sta peiramata. -Leipei i optikopoiisi tou xwrou Hough.