Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΦιλήμων Πανταζής Τροποποιήθηκε πριν 7 χρόνια
1
ΤΕΧΝΙΚΕΣ ΒΕΛΤΙΩΣΗΣ ΚΑΙ ΑΠΟΚΑΤΑΣΤΑΣΗΣ ΨΗΦΙΑΚΩΝ ΕΙΚΟΝΩΝ
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε ΤΕΧΝΙΚΕΣ ΒΕΛΤΙΩΣΗΣ ΚΑΙ ΑΠΟΚΑΤΑΣΤΑΣΗΣ ΨΗΦΙΑΚΩΝ ΕΙΚΟΝΩΝ (DIGITAL IMAGE ENHANCEMENT AND RECONSTRUCTION TECHNIQUES) Πτυχιακή εργασία της Κουτίδου Στυλιανής (2952) Επιβλέπων: Χ. Στρουθόπουλος
2
Στόχοι της εργασίας Ο σκοπός της εργασίας είναι η αναλυτική παρουσίαση και κατανόηση εντολών της εργαλιοθήκης του MatLab που αφορούν την επεξεργασία ψηφιακών εικόνων όπως: Τις τιμές των εικονοστοιχείων και βασικά στατιστικά μέτρα των εικόνων Βασικές τεχνικές και αλγορίθμους ανάλυσης εικόνας Ανάλυση τη υφής της εικόνας
3
Η ΨΗΦΙΑΚΗ ΕΙΚΟΝΑ Εικονοστοιχείο (picture element, pixel, pel)
Η τιμή I(j,k) με k=0,1,2….K-1 και j=0,1,2….J-1 είναι ο κωδικός του χρώματος του εικονοστοιχείου στην θέση (k,j) της ψηφιακής εικόνας J πλήθος γραμμών Κ πλήθος στηλών JxK πλήθος εικονοστοιχείων
4
ΕΙΔΗ ΨΗΦΙΑΚΩΝ ΕΙΚΟΝΩΝ Δυαδικές εικόνες (binary images) I(k,j){0,1}
Εικόνες αποχρώσεων του γκρι (gray level images) I(k,j)=0,1,...255 Έγχρωμες εικόνες (color images): κάθε εικονοστοιχείο χρωματίζεται με χρώματα που προέρχονται από την ανάμειξη των αποχρώσεων του κόκκινου, πράσινου και μπλε (RGB). I(k.j)=(IR(k,j), IG(k,j), IB(k,j)) IR(k,j), IG(k,j), IB(k,j){0,1,2,...,255}
5
Τύποι δεδομένων Type – Τύποι Δεδομένων Interpretation –Επεξήγηση
Range – Εύρος uint8 Μη προσημασμένοι, ανυπόγραφοι 8 – bit ακέραιοι [0, 255] uint16 Μη προσημασμένοι, ανυπόγραφοι 16 – bit ακέραιοι [0, 65535] uint32 Μη προσημασμένοι, ανυπόγραφοι 32 – bit ακέραιοι [0, ] int8 Προσημασμένοι 8 – bit ακέραιοι [-128, 127] int16 Προσημασμένοι 16 – bit ακέραιοι [-32768, 32767] int32 Προσημασμένοι 32 – bit ακέραιοι [ , ] single Αριθμός κινητής υποδιαστολής ενιαίας ακρίβειας [-1038, 1038] double Αριθμός κινητής υποδιαστολής διπλής ακρίβειας [-10308, 10308] char Χαρακτήρας (2 bytes per element) logical Τιμές είναι 0 ή 1 1 byte per element
6
Συναρτήσεις του MatLab
Τιμές εικονοστοιχείων και στατιστικά μέτρα εικόνας Ανάλυση εικόνων Ανάλυση υφής μιας εικόνας impixel improfile imcontour imhist mean2 std2 corr2 regionprops edge entropy cornermetric entropyfilt bwtraceboundary stdfilt bwboundaries rangefilt hough graycomatrix houghpeaks graycoprops houghlines qtdecomp qtgetblk qtsetblk
7
impixel RGB = imread(peppers.bmp','bmp'); [c r P]=impixel(RGB);
Εμφανίζει τις γραμμές χρώματος των pixels. Η impixel επιστρέφει τις τιμές των pixels σε έναν πίνακα n x 3, όπου n είναι ο αριθμός των σημείων που έχουμε επιλέξει σε μια εικόνα με το ποντίκι. Σύνταξη: P = impixel(I) P = impixel(X,map) P = impixel(RGB) P = impixel(I,c,r) P = impixel(X,map,c,r) P = impixel(RGB,c,r) [c,r,P] = impixel(…) P = impixel(x,y,I,xi,yi) P = impixel(x,y,X,map,xi,yi) P = impixel(x,y,RGB,xi,yi) [xi,yi,P] = impixel(x,y,...) RGB = imread(peppers.bmp','bmp'); [c r P]=impixel(RGB); figure; imshow(RGB(r(1):r(2),c(1):c(2),:));
8
improfile Αυτή η συνάρτηση υπολογίζει και παρουσιάζει γραφικά τις τιμές έντασης κατά μήκος ενός ευθύγραμμου τμήματος ή μιας διαδρομής πολλών γραμμών σε μια εικόνα. Μπορούμε να ορίσουμε ένα ευθύγραμμο τμήμα (ή τμήματα) καθορίζοντας τις συντεταγμένες τους ως ορίσματα εισόδου. Για ένα μόνο ευθύγραμμο τμήμα η improfile σχεδιάζει γραφικά τις τιμές έντασης σε μια δισδιάστατη όψη. Για μια διαδρομή πολλών γραμμών η improfile σχεδιάζει γραφικά τις τιμές έντασης σε μια τρισδιάστατη όψη. Σύνταξη: c = improfile c = improfile(n) c = improfile(Ι,xi,yi) c = improfile(Ι,xi,yi,n) [cx,cy,c] = improfile(...) [cx,cy,c,xi,yi] = improfile(...) […] = improfile(x,y,Ι,xi,yi) […] = improfile(x,y,Ι,xi,yi,n) […] = improfile(…,method)
9
improfile Δημιουργία τρισδιάστατης Γραφικής Παράστασης από Εικόνα της κλίμακας του γκρι με πολλά ευθύγραμμα τμήματα. I = imread('liftingbody.png'); imshow(I) x = [ ]; y = [ ]; improfile(I,x,y),grid on;
10
imcontour Σχεδιάζει μια γραφική παράσταση περιγράμματος της grayscale εικόνας Ι, ρυθμίζοντας αυτόματα τους άξονες έτσι ώστε ο προσανατολισμός και η αναλογία απεικόνισης να ταιριάζουν με την εικόνα. Σύνταξη: imcontour(I) imcontour(Ι,n) imcontour(Ι,v) imcontour(x,y,…) imcontour(…,LineSpec) [C,handle] = imcontour(...)
11
imcontour I = imread('rice.tif'); imshow(I) figure, imcontour(I, 3)
clear; close all; I = uint8([ ; ; ; ; ; ]); imshow(I); imcontour(I); I = imread('rice.tif'); imshow(I) figure, imcontour(I, 3)
12
imhist εμφανίζει ένα ιστόγραμμα για την εικόνα Ι πάνω σε μία κλίμακα αποχρώσεων του γκρι (grayscale). Οι αποχρώσεις ομαδοποιούνται σε κλάσεις (bins). Ο αριθμός των κλάσεων στο ιστόγραμμα καθορίζεται από τον τύπο της εικόνας. Εάν η Ι είναι grayscale, η εντολή imhist χρησιμοποιεί μια προκαθορισμένη τιμή 256 κλάσεων. Εάν η Ι είναι μια binary εικόνα, η imhist χρησιμοποιεί δύο κλάσεις, 0 και 1. Σύνταξη: imhist(I) imhist(Ι,n) imhist(X,map) [counts,x] = imhist(...)
13
imhist I = imread('pout.tif’); imshow(I) imhist(I);
[h g] = imhist(I );
14
mean2 Σύνταξη: Β = mean2(A)
Yπολογίζει τον μέσο όρο των τιμών στον πίνακα Α. Σύνταξη: Β = mean2(A) clc; A = [ ; 2 2 2; 1 1 1] C = [ ; ; ] D = [ ; ; ] mA = mean2(A) mC = mean2(C) mD = mean2(D) mA = 2 mC = mD = Εμφανίζει τον μέσο όρο του πίνακα Α Εμφανίζει τον μέσο όρο του πίνακα C Εμφανίζει τον μέσο όρο του πίνακα D
15
mean2 Υπολογισμός Μέσης Τιμής μιας Εικόνας I = imread('liftingbody.png'); meanval = mean2(I) meanval =
16
std2 Υπολογίζει τη τυπική απόκλιση των τιμών στον πίνακα Α. Σύνταξη: Β = std2(A)
17
std2 Υπολογισμός της τυπικής απόκλισης I = imread('liftingbody.png'); val = std2(I); val =
18
corr2 υπολογίζει το συντελεστή συσχέτισης μεταξύ του Α και του Β. Ο αλγόριθμος αυτής της συνάρτησης υπολογίζει τον συντελεστή συσχέτισης με τη χρήση του τύπου:
19
corr2 Υπολογισμός του συντελεστή συσχέτισης μεταξύ μιας εικόνας και της ίδιας εικόνας που υποβάλλεται σε επεξεργασία με ένα μέσο φίλτρο. Ι = imread (‘pout.tif’) ; imshow (I) J = medfilt2 (I) ; R = corr2 (Ι, J) R = 0.9959
20
regionprops Μετρήσεις σχήματος (Shape Measurements)
Σύνταξη: STATS = regionprops(BW, properties) STATS = regionprops(CC, properties) STATS = regionprops(L, properties) STATS = regionprops(…,Ι, properties) Το σύνολο των ιδιοτήτων που παρέχουν μετρήσεις σχήματος (Shape Measurements). Οι ιδιότητες που αναφέρονται στη λίστα των μετρήσεων τιμών pixel (Pixel Value Measurements). Μετρήσεις σχήματος (Shape Measurements) Μετρήσεις τιμών pixel (Pixel Value Measurements) ‘Area’ ‘FilledArea’ ‘BoundingBox’ ‘FilledImage’ ‘Centroid’ ‘Image’ ‘ConvexArea’ ‘MajorAxisLength’ ‘ConvexHull’ ‘MinorAxisLength’ ‘ConvexImage’ ‘Orientation’ ‘Eccentricity’ ‘Perimeter’ ‘EquivDiameter’ ‘PixelIdxList’ ‘EulerNumber’ ‘PixelList’ ‘Extent’ ‘Solidity’ ‘Extrema’ ‘SubarrayIdx’ ‘MaxIntensity’ ‘MeanIntensity’ ‘MinIntensity’ ‘PixelValues’ ‘WeightedCentroid’
21
regionprops clc; D2 = [0 0 1 1 1; 0 0 1 1 0; 0 1 1 0 0; 1 1 0 0 1]
] stats_all = regionprops(D2, 'all') stats_basic = regionprops(D2, 'basic') stats_A = regionprops(D2,'Area','ConvexHull','ConvexImage','ConvexArea') stats_all = Area: 10 Centroid: [ ] BoundingBox: [ ] SubarrayIdx: {[ ] [ ]} MajorAxisLength: MinorAxisLength: Eccentricity: Orientation: ConvexHull: [11x2 double] ConvexImage: [4x5 logical] ConvexArea: 16 Image: [4x5 logical] FilledImage: [4x5 logical] FilledArea: 10 EulerNumber: 2 Extrema: [8x2 double] EquivDiameter: Solidity: Extent: PixelIdxList: [10x1 double] PixelList: [10x2 double] Perimeter: stats_basic = stats_A =
22
Ανίχνευση ακμών - Edge Η μέθοδος Sobel βρίσκει τις ακμές, χρησιμοποιώντας την προσέγγιση Sobel στην παράγωγο. Επιστρέφει ακμές στα σημεία εκείνα όπου η κλίση της Ι είναι μέγιστη. Η μέθοδος Prewitt βρίσκει τις ακμές, χρησιμοποιώντας την προσέγγιση Prewitt στην παράγωγο. Επιστρέφει ακμές στα σημεία εκείνα όπου η κλίση της Ι είναι μέγιστη. Η μέθοδος Roberts βρίσκει τις ακμές, χρησιμοποιώντας την προσέγγιση Roberts στην παράγωγο. Επιστρέφει τις ακμές στα σημεία εκείνα όπου η κλίση της Ι είναι μέγιστη. Η Laplacian of Gaussian (LoG) μέθοδος βρίσκει τις ακμές ψάχνοντας για μηδενικές διασταυρώσεις μετά το φιλτράρισμα της Ι με Laplacian of Gaussian φίλτρο. Η Zero-cross μέθοδος βρίσκει ακμές ψάχνοντας για μηδενικές διασταυρώσεις μετά το φιλτράρισμα της Ι με ένα φίλτρο που εμείς έχουμε καθορίσει. Η μέθοδος Canny βρίσκει ακμές ψάχνοντας για τα τοπικά μέγιστα της κλίσης της Ι. Η κλίση υπολογίζεται χρησιμοποιώντας την παράγωγο ενός Gaussian φίλτρου. Η μέθοδος χρησιμοποιεί δύο κατώτατα όρια (κατώφλια), για την ανίχνευση ισχυρών και ασθενών ακμών, και περιλαμβάνει τις αδύναμες ακμές στην έξοδο μόνο εάν συνδέονται με ισχυρές ακμές. Αυτή η μέθοδος είναι επομένως λιγότερο πιθανό από ότι οι άλλες να ξεγελαστεί από το θόρυβο, και πιο πιθανό να ανιχνεύσει τις πραγματικά αδύναμες ακμές. Εάν δεν καθορίσουμε μια μέθοδο, η συνάρτηση edge χρησιμοποιεί τη μέθοδο Sobel (από προεπιλογή) για να ανιχνεύσει τις ακμές. Οι παράμετροι που μπορούμε να δώσουμε διαφέρουν ανάλογα με τη μέθοδο που καθορίζουμε.
23
Ανίχνευση ακμών - Edge Sobel Prewitt Roberts
24
Ανίχνευση ακμών - Edge Σύνταξη: BW = edge(I) BW = edge(I,'sobel') BW = edge(I,'sobel',thresh) BW = edge(I,'sobel',thresh,direction) [BW,thresh] = edge(I,'sobel',...) BW = edge(I,'prewitt') BW = edge(I,'prewitt',thresh) BW = edge(I,'prewitt',thresh,direction) [BW,thresh] = edge(I,'prewitt',...) BW = edge(I,'roberts') BW = edge(I,'roberts',thresh) [BW,thresh] = edge(I,'roberts',...) BW = edge(I,'log') BW = edge(I,'log',thresh) BW = edge(I,'log',thresh,sigma) [BW,threshold] = edge(I,'log',...) BW = edge(I,'zerocross',thresh,h) [BW,thresh] = edge(I,'zerocross',...) BW = edge(I,'canny') BW = edge(I,'canny',thresh) BW = edge(I,'canny',thresh,sigma) [BW,threshold] = edge(I,'canny',...)
25
Ανίχνευσης ακμών - edge
I = imread('coins.png'); imshow(I) BW1 = edge(I,'sobel'); BW2 = edge(I,'canny'); BW3 = edge(I,'prewitt'); BW4 = edge(I,'roberts'); BW5 = edge(I,'log'); BW6 = edge(I,'zerocross'); imshow(BW1); figure, imshow(BW2)
26
Ανίχνευσης ακμών - edge
Sobel Filter Prewitt Filter Canny Filter Roberts Filter
27
Ανίχνευσης ακμών - edge
Log Filter Zerocross Filter
28
cornermetric Εντοπίζει γωνίες σε μια εικόνα. Σύνταξη: C = cornermetric (I) C = cornermetric (I,method) C = cornermetric(..., param1, val1, param2, val2, ...)
29
cornermetric Εύρεση των χαρακτηριστικών μιας γωνίας σε μια εικόνα της κλίμακας του γκρι. I = imread('pout.tif'); I = I(1:150,1:120); subplot(1,3,1); imshow(I); title('Original Image'); C = cornermetric(I); C_adjusted = imadjust(C); subplot(1,3,2); imshow(C_adjusted); title('Corner Metric'); corner_peaks = imregionalmax(C); corner_idx = find(corner_peaks == true); [r g b] = deal(I); r(corner_idx) = 255; g(corner_idx) = 255; b(corner_idx) = 0; RGB = cat(3,r,g,b); subplot(1,3,3); imshow(RGB); title('Corner Points');
30
bwtraceboundary Ανιχνεύει το περίγραμμα ενός αντικειμένου σε μια binary εικόνα εισόδου BW. Σύνταξη: Β = bwtraceboundary(BW,P,fstep) Β = bwtraceboundary(BW,P,fstep,conn) Β = bwtraceboundary(…,Ν,dir) fstep:
31
bwtraceboundary Connectivity (conn) : 4-connected neighborhood 8-connected neighborhood
32
bwtraceboundary B = bwtraceboundary(A, [3 2],'N')
clc; A = [ ; ; ; ; ; ] B = bwtraceboundary(A, [3 2],'N') B = bwtraceboundary(A, [5 2], 'E', 8) B = bwtraceboundary(A, [5 2], 'E', 4) B = bwtraceboundary(A, [5 2], 'E', 8, Inf, 'clockwise') B = bwtraceboundary(A, [5 2], 'E', 4, Inf, 'clockwise') B = bwtraceboundary(A, [5 2], 'E', 8, Inf, 'counterclockwise') B = bwtraceboundary(A, [5 2], 'E', 4, Inf, 'counterclockwise') B =
33
bwtraceboundary BW = imread('blobs.png'); imshow(BW,[ ]) r = 163;
Ανίχνευση Ορίου και Οπτικοποίηση Περιγραμμάτων BW = imread('blobs.png'); imshow(BW,[ ]) r = 163; c = 37; contour = bwtraceboundary(BW,[r, c], 'W',8,Inf, 'counterclockwise'); (όπου r = row και c = column) hold on; plot(contour(:,2),contour(:,1),'g','LineWidth',2)
34
bwboundaries Ανιχνεύει τα εξωτερικά όρια των αντικειμένων, καθώς επίσης και τα όρια των οπών μέσα σε αυτά τα αντικείμενα, στη binary εικόνα BW. Επίσης μπορεί να ανιχνεύσει τα πιο απομακρυσμένα αντικείμενα (γονείς) και τα παιδιά τους (αντικείμενα που περικλείονται πλήρως από τους γονείς). Σύνταξη: Β = bwboundaries(BW) Β = bwboundaries(BW,conn) Β = bwboundaries(BW,conn,options) [B,L] = bwboundaries(...) [B,L,Ν,Α] = bwboundaries(...)
35
bwboundaries I = imread('rice.png'); BW = im2bw(I, graythresh(I)); [B,L] = bwboundaries(BW,'noholes'); [ ])) hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2) end
36
Εύρεση ευθύγραμμων τμημάτων – Ο μετασχηματισμός Hough
Standard Hough Transform (SHT): ρ = xcos(θ)+ysin(θ)
38
οι τιμές που παίρνει ο πίνακας H
hough clc; I = [ ; ; ; ] [H, theta, rho] = hough(I) [H,T,R] = hough(I,'RhoResolution',5,'Theta',-90:30:89) H = οι τιμές που παίρνει ο πίνακας H είναι από 0 έως και 5 Theta = -90:1:89 Rho = -5:1:5 T = R = Ο μετασχηματισμός Hough Σύνταξη: [H, theta, rho] = hough(BW) [H, theta, rho] = hough(BW, ParameterName, ParameterValue)
39
οι τιμές που παίρνει ο πίνακας H
houghpeaks clc; I = [ ; ; ; ] [H, theta, rho] = hough(I4) peaks = houghpeaks(H,4) [H,T,R] = hough(I4,'RhoResolution',5,'Theta',-90:30:89) H = οι τιμές που παίρνει ο πίνακας H είναι από 0 έως και 5 Theta = -90:1:89 Rho = -5:1:5 peaks = T = R = Προσδιορισμός κορυφών στο μετασχηματισμό Hough Σύνταξη: peaks = houghpeaks(H, numpeaks) peaks = houghpeaks(..., param1, val1, param2, val2)
40
houghlines Εξάγει, ξεχωρίζει τα ευθύγραμμα τμήματα με βάση τον μετασχηματισμό Hough. Σύνταξη: lines = houghlines(BW, theta, rho, peaks) lines = houghlines(..., param1, val1, param2, val2) parameters:‘FillGap’, ‘MinLength’
41
Απεικόνιση Ευθύγραμμων Τμημάτων
houghlines Γραφική παράσταση κορυφών στον μετασχηματισμό Hough Απεικόνιση του μεγαλύτερου ευθύγραμμου τμήματος Circuit.tif Απεικόνιση Ευθύγραμμων Τμημάτων
42
Ανάλυση ομοιογένειας με τετραδικά δένδρα
43
qtdecomp Εφαρμόζει μια αποδόμηση με χρήση ενός τετραδικού δένδρου. Σύνταξη: S = qtdecomp(I) S = qtdecomp(I, threshold) S = qtdecomp(I, threshold, mindim) S = qtdecomp(I, threshold, [mindim maxdim]) S = qtdecomp(I, fun)
44
qtdecomp
45
qtgetblk Τιμές τετραγώνου στο τετραδικό δένδρο αποσύνθεση Σύνταξη:
[vals, r, c] = qtgetblk(I, S, dim) [vals, idx] = qtgetblk(I, S, dim)
46
qtsetblk clc; I = uint8([ ; ; ; ; ; ; ; ]) S = qtdecomp(I, 0.05) NS = full(S) newvals = cat(3,zeros(4),ones(4),ones(4)); J = qtsetblk(I,S,4,newvals) S = (1,1) (5,1) (1,5) (5,5) (7,5) (5,7) (7,7) (8,7) (7,8) (8,8) NS = J = Ορίζει τιμές τετραγώνου στο τετραδικό δένδρο αποσύνθεσης Σύνταξη: J = qtsetblk (Ι, S, dim, vals)
47
H = 𝑔=0 255 𝑝 𝑔 log 2 1 𝑝 𝑔 = - 𝑔=0 255 𝑝 𝑔 log 2 𝑝 𝑔
entropy Η εντροπία είναι ένα στατιστικό μέτρο που μπορεί να χρησιμοποιηθεί για να χαρακτηρίσει την υφή της εικόνας εισόδου και δίνεται από την σχέση: H = 𝑔= 𝑝 𝑔 log 𝑝 𝑔 = - 𝑔= 𝑝 𝑔 log 2 𝑝 𝑔 Σύνταξη: E = entropy ( I )
48
entropy clc; I = [ ; ; ; ] I = [ ; ; ; ] E = entropy(I) E = entropy(uint8(I)) E = 0.5294 4.3219 = 𝑖= 𝑙𝑜𝑔 2 (20) διότι η εικόνα έχει 20 ισοπίθανες τιμές Στον πρώτο παράδειγμα με τα 25 στοιχεία μηδενικών και μονάδων η εντροπία υπολογίζεται κανονικά με τον τύπο της. Υπολογίζουμε το άθροισμα των ‘0’ και των ‘1’, αντίστοιχα το x0 = 3 και x1 = 22. Βρίσκουμε την πιθανότητα του ‘0’ και του ‘1’, p0 = (3/25)= 0,12 και p1 = (22/25)= 0,88 αντίστοιχα. Έτσι η εντροπία υπολογίζεται από τον τύπο της: E = - (0,12 * log2 0,12 + 0,88 * log2 0,88) = - (0,12 * (- 3,05919) + 0,88 * (- 0,1844)) = - ((- 0,36710) + (- 0,16230)) = 0,5294. Ενώ στο δεύτερο παράδειγμα με τα 20 διαφορετικά στοιχεία όπου τα στοιχεία που περιέχει είναι ακέραιοι θετικοί αριθμοί και που η εικόνα έχει 20 ισοπίθανες τιμές. Από τον τύπο της εντροπίας υπολογίζουμε: Ε = - (20 * 1/20 * log2 1/20) = log2 20 = 4,32.
49
entropyfilt Τοπική εντροπία της grayscale εικόνας Σύνταξη: J = entropyfilt ( I ) J = entropyfilt ( I, NHOOD )
50
stdfilt Τοπική τυπική απόκλιση της εικόνας Σύνταξη: J = stdfilt (I) J = stdfilt (Ι, NHOOD)
51
rangefilt Τοπικής εμβέλειας της εικόνας Σύνταξη: J = rangefilt (I) J = rangefilt (Ι, NHOOD)
52
rangefilt Προσδιορισμός αντικειμένων I = imread('liftingbody.png');
J = rangefilt(I); imshow(I), figure, imshow(J)
53
Συναρτήσεις με βάση την θέση των εικονοστοιχείων
Μια στατιστική μέθοδος εξέτασης της υφής για εικόνες αποχρώσεων του γκρι που θεωρεί την χωρική σχέση των εικονοστοιχείων, είναι ο πίνακας συνεμφάνισης (co-occurrence matrix) των επιπέδων του γκρι (GLCM:Gray Level Co-occurrence Matrix). H μέθοδος είναι επίσης γνωστή ως πίνακας χωρικής εξάρτησης των επιπέδων του γκρι. Οι συναρτήσεις GLCM χαρακτηρίζουν την υφή μιας εικόνας υπολογίζοντας πόσο συχνά εμφανίζονται ζεύγη εικονοστοιχείων με συγκεκριμένες τιμές σε μια καθορισμένη χωρική σχέση, δημιουργώντας έναν GLCM. Στη συνέχεια από αυτό τον πίνακα, υπολογίζονται στατιστικές μετρήσεις.
54
graycomatrix Δημιουργεί έναν πίνακα συνεμφάνισης γκρι επιπέδου από μία εικόνα Σύνταξη: glcm = graycomatrix(I) glcms = graycomatrix(I, param1, val1, param2, val2,...) [glcm, SI] = graycomatrix(...)
55
graycoprops Ιδιότητες του πίνακα συνεμφάνισης γκρι επιπέδου. Σύνταξη:
stats = graycoprops (glcm, properties) Ο γενικός τύπος είναι: Ισχύει:
56
graycoprops ‘Contrast’(αντίθεση): ‘Correlation’(συσχέτιση):
Οι τιμές της properties είναι οι ακόλουθες συμβολοσειρές: ‘Contrast’(αντίθεση): ‘Correlation’(συσχέτιση): ‘Energy’(ενέργεια): ‘Homogeneity’(ομοιογένεια):
57
graycoprops clc; I = [ 1 1 5 5 7 7; 2 3 5 7 0 2; 0 2 3 5 5 7]
[glcm,SI] = graycomatrix(I,'GrayLimits',... [0, 7],'NumLevels',4,'Offset',[0 1;1 0; 1 1]); stats = graycoprops(glcm) [0, 7],'NumLevels',4,'Offset',[0 1; 1 0; 1 1]); %Υπολογισμός της ενέργειας για τον τρίτο glcm stats = graycoprops(glcm(:,:,3),'Energy') stats = Contrast: [ ] Correlation: [ ] Energy: [ ] Homogeneity: [ ] SI = Energy:
58
Συμπεράσματα Εξετάσαμε τις τεχνικές ανάλυσης ψηφιακών εικόνων μέσα από την εργαλειοθήκη του MATLAB (Image Processing Toolbox). Πιο συγκεκριμένα, ασχοληθήκαμε με τις εντολές της , τις οποίες χρησιμοποιήσαμε σε μια εικόνα για να πάρουμε πληροφορίες για τις τιμές των εικονοστοιχείων της, τα στατιστικά της χαρακτηριστικά, την ύπαρξη βασικών γεωμετρικών σχημάτων και την υφή της. Ακόμη, αναπτύξαμε και αναλύσαμε παραδείγματα πάνω σε αυτές για την καλύτερη κατανόηση τους. Θα μπορούσαν να αποτελέσουν ένα εκπαιδευτικό εγχειρίδιο για την ανάλυση ψηφιακών εικόνων.
59
ΒΙΒΛΙΟΓΡΑΦΙΑ [GONWO11] Rafael C. Gonzalez, Richard E. Woods, “Digital Image Processing”, Third Edition, 2011. [GOWOE05] Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, “Digital Image Processing Using MATLAB”, 2005. [ΣΤΡΟΥ08] Δρ. Χαράλαμπος Στρουθόπουλος, “Ψηφιακή Επεξεργασία Εικόνας”, ΤΕΙ ΣΕΡΡΩΝ, Δεκέμβριος 2009. [1] Matlab (R2010a) Version [2] Διαδίκτυο “Image Processing Toolbox For Use With MATLAB”, The MathWorks Inc., User’s Guide, Version 2 [3] images_tb.pdf, pp Διαθέσιμο στη διεύθυνση: vpc/MatDocen/notas_practicas/MATLAB/imgtool/images_tb.pdf [4] Διαδίκτυο: www-rohan.sdsu.edu/doc/matlab/toolbox/images/strel.html [5] Διαδίκτυο:en.wikipedia.org/wiki/Sparse_matrix [6] εικόνες: peppers.png, liftingbody.png, circuit.tif, rice.png, pout.tif, text.png, coins.png, blobs.png, gantrycrane.png, cameraman.png. Διαθέσιμες στη διεύθυνση: [7] Διαδίκτυο: el.wikipedia.org/wiki/Εντροπία_πληροφοριών [8] Διαδίκτυο: [9] Διαδίκτυο:slideplayer.com/slide/ /
60
ΣΑΣ ΕΥΧΑΡΙΣΤΩ!!!
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.