MODULE 5 Κεφάλαιο 5 Linear Image Filtering Γραµµικό Φιλτράρισµα Εικόνων • Wraparound and Linear Convolution Κυκλική και Γραµµική Συνέλιξη • Linear Image Filters Γραµµικά Φίλτρα Εικόνων • Linear Image Enhancement Γραµµική Βελτίωση της Εικόνας • Linear Image Restoration (Deconvolution) Γραµµική Αποκατάσταση της Εικόνας (Deconvolution) QUICK INDEX 5.1 MODULE 5 INDEX • • • • WRAPAROUND CONVOLUTION ΚΥΚΛΙΚΗ ΣΥΝΕΛΙΞΗ DIAGRAMS OF WRAPAROUND CONVOLUTION ∆ΙΑΓΡΑΜΜΑ ΚΥΚΛΙΚΗΣ ΣΥΝΕΛΙΞΗΣ LINEAR CONVOLUTION ΓΡΑΜΜΙΚΗ ΣΥΝΕΛΙΞΗ LINEAR CONVOLUTION BY ZERO PADDING ΓΡΑΜΜΙΚΗ ΣΥΝΕΛΙΞΗ ΜΕ ΠΡΟΣΘΗΚΗ ΜΗ∆ΕΝΙΚΩΝ • LINEAR SYSTEMS AND LINEAR IMAGE FILTERING ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΓΡΑΜΜΙΚΟ ΦΙΛΤΡΑΡΙΣΜΑ ΕΙΚΟΝΑΣ • GOALS OF LINEAR IMAGE FILTERING ΣΚΟΠΟΙ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΦΙΛΤΡΑΡΙΣΜΑΤΟΣ ΕΙΚΟΝΑΣ • CHARACTERIZING LINEAR FILTERS ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΓΡΑΜΜΙΚΩΝ ΦΙΛΤΡΩΝ • SIMPLE FILTER DESIGN ΑΠΛΗ ΣΧΕ∆ΙΑΣΗ ΦΙΛΤΡΩΝ • LOW-PASS, BAND-PASS, AND HIGH-PASS FILTERS ΚΑΤΩ∆ΙΑΒΑΤΑ, ΖΩΝΟ∆ΙΑΒΑΤΑ, ΑΝΩ∆ΙΑΒΑΤΑ ΦΙΛΤΡΑ • GENERAL USES OF FILTER TYPES ΓΕΝΙΚΕΣ ΧΡΗΣΕΙΣ ∆ΙΑΦΟΡΩΝ ΦΙΛΤΡΩΝ • LINEAR IMAGE ENHANCEMENT ΓΡΑΜΜΙΚΗ ΒΕΛΤΙΩΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΕΙΚΟΝΑΣ • ADDITIVE WHITE NOISE MODEL ΜΟΝΤΕΛΟ ΑΘΡΙΣΤΙΚΟΥ ΛΕΥΚΟΥ ΘΟΡΥΒΟΥ • SPECTRUM OF WHITE NOISE ΦΑΣΜΑ ΤΟΥ ΛΕΥΚΟΥ ΘΟΡΥΒΟΥ • DIGITAL WHITE NOISE ΨΗΦΙΑΚΟΣ ΛΕΥΚΟΣ ΘΟΡΥΒΟΣ • NOISE SMOOTHING - AVERAGE FILTER ΕΞΩΜΑΛΥΝΣΗ ΘΟΡΥΒΟΥ – ΦΙΛΤΡΟ ΜΕΣΟΥ ΟΡΟΥ • NOISE SMOOTHING - IDEAL LOW-PASS FILTER ΕΞΩΜΑΛΥΝΣΗ ΘΟΡΥΒΟΥ – Ι∆ΑΝΙΚΟ ΚΑΤΩ∆ΙΑΒΑΤΟ ΦΙΛΤΡΟ • NOISE SMOOTHING - GAUSSIAN FILTER 5.2 ΕΞΩΜΑΛΥΝΣΗ ΘΟΡΥΒΟΥ – ΦΙΛΤΡΟ GAUSSIAN • LINEAR IMAGE RESTORATION (DECONVOLUTION) ΓΡΑΜΜΙΚΗ ΑΠΟΚΑΤΑΣΤΑΣΗ ΕΙΚΟΝΑΣ (DECONVOLUTION) • DECONVOLUTION - INVERSE FILTER DECONVOLUTION - ΦΙΛΤΡΟ ΑΝΤΙΣΤΡΟΦΟ • DECONVOLUTION - MISSING FREQUENCIES DECONVOLUTION - ΧΑΜΕΝΕΣ ΣΥΧΝΟΤΗΤΕΣ • PSEUDO-INVERSE FILTER ΦΙΛΤΡΟ ΨΕΥ∆Ο-ΑΝΤΙΣΤΡΟΦΗΣ • DECONVOLUTION IN THE PRESENCE OF NOISE DECONVOLUTION ΣΤΗΝ ΠΑΡΟΥΣΙΑ ΘΟΡΥΒΟΥ • WIENER FILTER ΦΙΛΤΡΟ WIENER • APPLICATION: OPTICAL SERIAL SECTIONING ΕΦΑΡΜΟΓΗ: ΟΠΤΙΚΗ ∆ΙΑ∆ΟΧΙΚΗ ΤΟΜΗ • EXERCISES ΑΣΚΗΣΕΙΣ QUICK INDEX 5.3 WRAPAROUND CONVOLUTION ΚΥΚΛΙΚΗ ΣΥΝΕΛΙΞΗ (index) • We have seen that modifying the DFT of an image changes its appearance. Έχουµε παρατηρήσει ότι µε την µετατόπιση του DFT µιας εικόνας αλλάζει η εµφάνιση της • For example, multiplying the DFT by a zero-one mask: Για παράδειγµα, πολλαπλασιάζοντας το DFT µε µια µάσκα µηδενός-ενός predictably modifies the structure of gray-levels in the image. Μετατρέπει µε σιγουριά την δοµή των πεδίων φωτεινότητας στην εικόνα • What if two arbitrary DFTs I and I 2 are (pointwise) multiplied together? 1 Τι αν δυο τυχαία DFTs I 1 και I 2 πολλαπλασιαστούν µαζί (σηµείο προς σηµείο); • What is the nature of the image J obtained by the operations Ποια είναι η φύση της εικόνας J που παίρνεται από τις λειτουργίας J = I 1⊗ I 2 or J = I 1∆ I 2? • The answer has profound consequences in image processing. Η απάντηση έχει βαθιές συνέπειες στην επεξεργασία εικόνας 5.4 Multiplying DFTs (Πολλαπλασιασµός DFTs) (index) • J = I 1 ⊗ I 2. Pointwise division J = I 1 ∆ I 2 is just a special case, since Θεωρούµαι το γινόµενο J = Consider the product for any DFT I 1 ⊗ I 2. Η διαίρεση (σηµείου προς σηµείο) J = I1∆ I2 είναι απλός µια ειδική περίπτωση, αφού για οποιοδήποτε DFT [I (u, v) ; 0 ≤ u, v ≤ N-1 ] it's true that (είναι αλήθεια ότι) [ 1/I (u, v) ; 0 ≤ u, v ≤ N-1 ] is a DFT, provided that I (u, v) ≠ 0 for any u, v (more later!) είναι ένα DFT, υπό τον όρο ότι I (u, v) ≠ 0 για κάθε u, v (περισσότερα αργότερα!) • The inverse DFT of the pointwise product Το αντίστροφο DFT του γινόµενου (σηµείο προς σηµείο) [J (u, v) ; 0 ≤ u, v ≤ N-1] is (είναι) N-1 N-1 -(ui + vj) 1 J (u, v) W N J(i, j) = 2 N u=0 v=0 Σ Σ N-1 N-1 -(ui + vj) 1 = I 1(u, v)· I 2(u, v) W N 2 N u=0 v=0 Σ Σ N-1 N-1 N-1 N-1 (um + vn) 1 = { I1(m, n) W N } 2 N u = 0 v = 0 m= 0 n = 0 Σ Σ Σ Σ N-1 N-1 (up + vq) -(ui + vj) I2(p, q) W N } WN ·{ p=0 q=0 N-1 N-1 N-1 N-1 N-1 N-1 1 = I1(m, n) I2(p, q)· WN[u(p+m–i) + v(q+n–j)] 2 N m= 0 n = 0 p=0 q=0 u=0 v=0 Σ Σ Σ Σ Σ Σ Σ Σ 5.5 (by rearranging summations). (µε εναλλαγη αθρισµατων) (index) • The innermost term is (from the end of Module 4): Ο εσωτερικός όρος είναι (από το τέλος του Κεφ 4): N-1 N-1 WN[u(p+m–i) + v(q+n–j)] = N2 · δ(p+m-i, q+n-j). Σ Σ u=0 v=0 • Substitution then yields Αντικαταστώντας παίρνουµε N-1 N-1 J(i, j) = N-1 N-1 I1(m, n) Σ Σ I2(p, q) · δ(p+m-i, q+n-j) Σ Σ m= 0 n = 0 p=0 q=0 N-1 N-1 = = Σ Σ I1(m, n) · I2[(i-m)N, (j-n)N] m= 0 n = 0 N-1 N-1 I1[(i-p) , (j-q) ] · I2(p, q) Σ Σ m= 0 n = 0 N N (equivalent result) (x)N = x mod N = I1 I2 = The wraparound convolution of I1 and I2 = Η κυκλική συνέλιξης της I1 και I2 since I1(m, n) and I2(m, n) are assumed N-periodic when the DFT is used - hence all arguments are computed modulo-N. αφού I1(m, n) και I2(m, n) θεωρούνται Ν-περιοδικές όταν χρησιµοποιείται το DFT, έτσι όλοι οι συντελεστές υπολογίζονται µε βάση υπόλοιπου-Ν 5.6 Wraparound Convolution Κυκλικη Συνελιξη (index) • We now study the summation Μελετούµε τώρα το άθροισµα N-1 N-1 J(i, j) = Σ Σ m= 0 n = 0 I1(m, n) · I2[(i-m)N, (j-n)N] = I1 • What does mean? (Τι είναι το I2 ) • It is a weighted sum of the elements I1(m, n) of the image I1, where the weights I2(i-m, j-n) are shifted elements of the image I2. Είναι ένα άθροισµα βάρους των συντελεστών της εικόνας I1, όπου οι παράµετροι I2(i-m, j-n) είναι µετατοπισµένα στοιχεία της εικόνας I2. • • The amount of shift depends on (i, j). Το µέγεθος της µετατόπισης εξαρτάτε άπω (i, j). For (i, j) given, J(i, j), the new image, is defined by: Για δοσµένα (i, j), J(i, j), η νέα εικόνα, ορίζεται ως: - superimposing I2 directly "on top of" I1 τοποθέτηση της I2 πάνω στην I1 - reversing I2 : [I2(-m, -n)] αντίστροφη της I2 : [I2(-m, -n)] - shifting I2 by an amount (i, j) µετατόπιση της I2 µε µέγεθος (i, j) - computing I1(m, n)·I2[(i-m)N, (j-n)N] Υπολογισµός I1(m, n)·I2[(i-m)N, (j-n)N] for 0 ≤ m, n ≤ N-1 - adding the results (προσθετουµε τα αποτελεσµατα) • Diagrams are a must to digest this. Τα σχήµατα είναι αναγκαία για να χωνέψουµε αυτό • Note: We do not perform this series of space computations! We are only showing the equivalent space-domain operation resulting from multiplying DFTs! 5.7 Σηµειωση: ∆εν εκτελούµε αυτή της σειρά από υπολογισµούς χώρου! ∆είχνουµε µόνο την ισοδύναµη λειτουργία του πεδίου ορισµού του χώρου που ειναι αποτελεσµα του πολλαπλασιασµου DFTs Diagrams of Wraparound Convolution ∆ιαγραµµατα της Κυκλικης Συνελιξης • • (index) All of the following processing is to compute the wraparound convolution at a single point (i, j) Όλες οι ακόλουθες επεηερασιες είναι για να υπολογίσουµε την κυκλική συνέλιξη σε ένα απλό σηµείο (i, j) Consider the two images with image I1 and its contents shaded at each stage of processing shown: Θεωρούµαι τις δυο εικόνες µε την εικόνα I1 και το σκιασµένο περιεχόµενο σε κάθε φάση της επεξεργασίας που φαίνεται: j (0,0) (0,0) i Image I 2 Image I 1 • We give them the same coordinate system (superimpose them) Τους δίνουµε το ίδιο σύστηµα συντεταγµένων (τοποθετούµε την µια πάνω στης άλλη) j (0,0) i Superimposed 5.8 • (index) The image I2 is then reversed (reflected), along both axes. This requires that it be defined for negative coordinates, i.e., the periodic extension is used. Η εικόνα I2 αντιστρέφετε (ανακλάτε), κατά µήκος και των δυο αξόνων. Αυτό απαιτεί ότι είναι ορισµένη για αρνητικές συντεταγµένες, π.χ., η περιοδική επέκταση χρησιµοποιείτε I 2 reversed j (0,0) i • The reversed version of I2 is then shifted by the amount (i, j) along both axes: Η αντιστραµµένη ερµηνεία της I2 τότε µετατοπίζεται µε το µέγεθος (i, j) κατά µήκος των δυο αξόνων: (0,0) j i I 2 shifted 5.9 • (index) The sum extends over 0 ≤ m, n ≤ N-1 (in blue) so some of the arguments of I2(i-m, j-n) fall outside the range 0 ,..., N-1. What is computed is the summation of the product of Το άθροισµα προεκτείνεται πάνω στο 0 ≤ m, n ≤ N-1 (µε µπλε) έτσι µερικοί από τους συντελεστές της I2(i-m, j-n) πέφτουν έξω από το διάστηµα 0 ,..., N-1. Τι υπολογίζετε είναι το άθροισµα του γινόµενου της [I1(m, n) ; 0 ≤ m, n ≤ N-1] and the periodic extension of και της περιοδικής επέκτασης της [I2(i-m, j-n)] as shown: (όπως φαίνεται) (0,0) j i Overlay of periodic extension of shifted I 2 Summation occurs for 0 < I, j < N-1 (inside ) Computation of Wraparound Convolution Υπολογισµος της Κυκλικης Συνελιξης (index) • Direct computation of (Ευθύς υπολογισµός της) N-1 N-1 I1(m, n)· I2[(i-m)N, (j-n)N] J(i, j) = m= 0 n = 0 Σ Σ 5.10 is quite simple, although very time-consuming. είναι κάπως απλός, αλλά πολύ χρονοβόρα • Pseudo-code: (Ψευδό-κώδικας) { int do { I1 [N ] [N], I2 [N ] [N]; J(i, j) = 0; do { J(i, j) = J(i, j) + I1(m, n) *I2[(i-m) mod N, (j-n) mod N]; } while (0 ≤ m, n ≤ N-1); } while (0 ≤ i, j ≤ N-1); } • Just a set of nested do-loops. Απλός ένα σύνολο µε do-loops ο ένας µέσα στον άλλο • If N is large (say 512 x 512) then Αν το Ν είναι µεγάλο (ας πούµε 512 x 512) τότε - for each of N2 coordinates: N2 additions and N2 multiplies. για κάθε N2 συντεταγµένες: N2 αθροίσµατα και N2 πολλαπλασιασµοί - or N4 additions and N4 multiplies total η N4 αθροίσµατα και N4 πολλαπλασιασµοί σύνολο - For N = 512, this is 236 = 6.9 x 1010 operations για N = 512, αυτό κάνει 236 = 6.9 x 1010 λειτουργίες 5.11 DFT Computation of Wraparound Convolution Υπολογισµός µε DFT της Κυκλικής Συνέλιξης • • (index) Because of the FFT, computation of wraparound convolution in the DFT domain is much faster, provided that N = a power of 2. Λόγο του FFT, ο υπολογισµός της κυκλικής συνέλιξης στον χώρο του DFT είναι πολύ πιο γρήγορος, νοούµενου ότι Ν=δυνάµεις του 2 Simply: (Απλά:) J = I1 I2 = IFFTN[ FFTN[I1] ⊗ FFTN[I2] ] where FFTN denotes an (N x N)-point FFT algorithm. Όπου FFTN δείχνει ένα (N x N)-σηµείων αλγόριθµο FFT • • 2 2 Computation of the FFT of an N x N image is on the order of N · log (N ), so computation of is as well. 2 2 Ο υπολογισµός του FFT µιας N x N εικόνας είναι της τάξεως του N · log (N ), έτσι και ο υπολογισµός του After all this work, we now will discover that the wraparound convolution must be modified in order to make it useful. Μετά από όλη αυτή της δουλεία, θα ανακαλύψουµε τώρα ότι η κυκλική συνέλιξη πρέπει να τροποποιηθεί για να γίνει χρήσιµη LINEAR CONVOLUTION ΓΡΑΜΜΙΚΗ ΣΥΝΕΛΙΞΗΣ (index) • Wraparound convolution is a consequence of the periodic DFT. Η κυκλική συνέλιξη είναι συναίτια του περιοδικού DFT • For continuous images IC1(x, y) and IC2(x, y), multiplication of the CFTs (e.g., by optical means): Για συνεχείς εικόνες IC1(x, y) και IC2(x, y), ο πολλαπλασιασµός των CFTs (π.χ., µε οπτικά µέσα) J (ωx, ωy) = I C1(ωx, ωy)· I C2(ωx, ωy) results in the useful linear convolution: έχει αποτέλεσµα την χρήσιµοι γραµµική συνέλιξη: J(x, y) = IC1(x, y) * IC2(x, y) 5.12 • Linear convolution is a phenomena of nature. Wraparound convolution is an artifact of digital processing. Η γραµµική συνέλιξη είναι φαινόµενο της φύσης. Η κυκλική συνέλιξη είναι τεχνητό αποτέλεσµα της ψηφιακής επεξεργασίας • Most of circuit theory, optics, and continuous filtering theory is based around linear convolution. Πολλή ύλη από την θεωρία κυκλωµάτων, την οπτική, και την θεωρία συνεχών φίλτρων είναι βασισµένες πάνω στην γραµµική συνέλιξη • As it turns out, (linear) digital filtering theory also requires the concept of digital linear convolution. Συνεπάγεται ότι, (γραµµική) η θεωρία των ψηφιακών κυκλωµάτων επίσης χρειάζονται την αντίληψη της ψηφιακής γραµµικής συνέλιξης • Fortunately, wraparound convolution can be used to compute linear convolution. Ευτυχώς, η κυκλική συνέλιξη µπορεί να χρησιµοποιηθεί της τον υπολογισµό της γραµµικής συνέλιξης • First, let's look at an example of why wraparound convolution is undesirable: Πρώτα, ας κοιτάξουµε σε ένα παράδειγµα γιατί η κυκλική συνέλιξης είναι µη-επιθυµητή: Example (Παράδειγµα) • • (index) One of the simplest types of linear convolutions is the local average operation (or averaging filter). Ένα από τους απλούστερους τύπους γραµµικών συνελίξεων είναι η λειτουργία τοπικού µέσου όρου (η φίλτρο µέσου όρου) Conceptually, each image pixel is replaced by the average of its neighbors within a square "window": Πιο κατανοητά, κάθε στίγµα εικόνας αντικαθίσταται από τον µέσο όρο των γειτόνων του µέσα σε ένα τετράγωνο ‘παράθυρο’ 5.13 (0,0) j i j (0,0) i Input image Output image average of values within square window • This may be expressed, at most points (without proving it here) as the wraparound convolution of the image with another image of a square with intensity 1/M, where M = # pixels in the square: Αυτό µπορεί να εκφραστεί, στα πιο πολλά σηµεία (χωρίς να το αποδείξουµε εδώ) σαν την κυκλική συνέλιξη της εικόνα µε µια άλλη εικόνα του τετράγωνου µε φωτεινότητα 1/M, όπου M = # στιγµάτων στο τετράγωνο: 1/M 0 Input image Image of square (index) • Near the image borders, however, wraparound effects occur: Κοντά στα άκρα της εικόνας, ωστόσο, έχουµε κυκλικές παρεµβολές: 5.14 Opposite sides of the image are being averaged together ! • Usually, it is desirable to average neighboring elements ... Συνήθως, είναι επιθυµητό να περνούµε µέσους όρους γειτονικών στοιχείων … • ... and generally, the object of convolution is to superimpose and weight images according to their true ordering in space, rather than their periodic ordering which is a consequence of the DFT. … και γενικά, ο σκοπός της συνέλιξης είναι για να θέσουν υπεράνω και να ζυγίσουν τις εικόνες σύµφωνα µε τη σωστή σειρά τους στον χώρο, αντί την περιοδική σειρά που είναι αποτέλεσµα του DFT • The effect is much worse if both images are non-zero over most of their extent. Το αποτέλεσµα είναι ακόµα χειρότερο αν και οι δυο εικόνες δεν είναι µηδενικές κοντά στις άκρες τους. • If the filter is large, wraparound error is generally unacceptable. Αν το φίλτρο είναι µεγάλο, το κυκλικό λάθος είναι γενικά απαράδεκτο • If the filter is small, then wraparound may be acceptable as long as it is acknowledged near image boundaries. But using small filters can be done without DFTs (later). Αν το φίλτρο είναι µικρό, το κυκλικό αποτέλεσµα µπορούµε να το δεχτούµε αν αναγνωριστεί κοντά στις άκρες τις εικόνας. Αλλά χρησιµοποιώντας µικρά φίλτρα µπορεί να γίνει και χωρίς DFTs (αργότερα) 5.15 Linear Convolution by Zero Padding Γραµµική Συνέλιξη µε Προσθήκη Μηδενικών (index) • Performing linear convolution by wraparound convolution is a conceptually simple matter. Η εκτέλεση της γραµµικής συνέλιξης από κυκλική συνέλιξη είναι γενικώς απλό θέµα • It is accomplished by padding the two image arrays with zero values. Επιτυγχάνεται µε την προσθήκη στους δυο πίνακες εικόνων µε µηδενικές τιµές • Generally, both image arrays must be doubled in size: Γενικά, και οι δυο πίνακες εικόνας πρέπει να διπλασιαστούν στο µέγεθος: 0 Image I1 (zero padded) 0 Image I2 (zero padded) 2N x 2N zero padded images • At the edges, no wraparound effect will occur, since the "moving" image will be weighted by zero values only outside the domain. Στις άκρες της εικόνας, δεν θα σηµειωθεί κυκλικό φαινόµενο, αφού η ‘κινητή’ εικόνα θα ζυγιστούν µε µηδενικές τιµές µόνο έξω από το πεδίο ορισµού • This can be seen by looking at the overlaps when computing the convolution at a point (i, j): Αυτό µπορεί να το δούµε παρατηρώντας τις επικαλύψεις όταν υπολογίζουµε την συνέλιξη στα σηµεία (i, j): 5.16 (index) Linear convolution by zero padding • Remember, the summations take place only within the blue shaded square (0 ≤ i, j, ≤ 2N-1). Να θυµάστε, τα αθροίσµατα υπάρχουν µόνο µέσα στο µπλε σκιασµένο τετράγωνο • Instead of summing over the periodic extension of the "moving image," zero values are summed with the weighted interior values. Αντί να αθροίζουµε στην περιοδική επέκταση της ‘κινητής εικόνας’, η µηδενικές τιµές προσθέτονται στις ζυγισµένες εσωτερικές τιµές 5.17 DFT Computation of Linear Convolution Υπολογισµος DFT της Γραµµικης Συνελιξης • (index) ´ ´ ´ Let I1 , I2 , and J denote zero padded 2N x 2N versions of the images to be linearly convolved (I1 and I2) and the result of the convolution. Then if Ας θεωρήσουµε ότι I1´ , I2´ , και J´ είναι εκδοχές εικόνων µε προσθήκη µηδενικών 2N x 2N δυο εικόνων οι οποίες θα συνελικτούν γραµµικός (I1 και I2) και το αποτελεσµα της συνέλιξης. Τότε αν J´ = I1´ I2´ = IFFT2N [FFT2N[I1´] ⊗ FFT2N[I2´]] where FFT2N denotes a (2N x 2N)-point FFT algorithm, then the N x N image with elements όπου FFT2N δείχνει ένα (2N x 2N)-σηµείο του αλγόριθµου FFT, τότε η N x N εικόνα µε στοιχεία J(i, j) = J´ (i, j) ; 0 ≤ i, j ≤ N-1 will contain the linear convolution result. See notes below. θα περιλαµβάνει το αποτελεσµατικής γραµµικής συνέλιξης. ∆έστε τις πιο κάτω σηµειώσεις • In other words, (Με άλλες λέξεις) J = I1 * I2 _________ _________ Notes: (Σηµειώσεις) (1) Actually, the result of linear convolution is larger than N x N, but the interesting part of the result is contained by J. Στην πραγµατικότητα, το αποτέλεσµα της γραµµικής συνέλιξης είναι µεγαλύτερο από N x N, αλλά το σηµαντικό µέρος του αποτελέσµατος περιέχεται στην J (2) Sometimes it is desired to convolve an NxN image with a smaller filter template (say MxM), where M < N. This is easily accomplished by padding the template with zeros to size NxN. Μερικές φορές είναι επιθυµητό να συνελέξουµε µια εικόνα µε ένα µικρότερο template φίλτρου (ας πούµε MxM), όπου M < N. Αυτό επιτυγχάνεται εύκολα µε την προσθήκη µηδενική στο υποστήριγµα µε µηδενικά µεγέθους NxN. (3) In practice, if M << N, it may be faster to perform the linear convolution in the space domain. Στην πράξη, αν M << N, ίσως είναι γρηγορότερο να εκτελέσουµε την γραµµική συνέλιξη στο πεδίο χώρου 5.18 Direct Computation of Linear Convolution Ευθείς Υπολογισµός της Γραµµικής Συνέλιξης • • (index) Direct computation of linear convolution is simple, with no more computation than the wraparound convolution (but still usually much more than the FFT approach). Ο ευθείς υπολογισµός της γραµµικής συνέλιξης είναι απλός µε χωρίς περισσότερο υπολογισµό από της κυκλικοί συνέλιξη (αλλά ακόµα συνήθως πολύ περισσότερος από της προσέγγιση FFT) If instead of assuming that I1 and I2 are periodically extended (not necessary when not using the DFT), we may assume that Αν αντί να θεωρήσουµε ότι I1 και I2 είναι περιοδικά επεκτεινόµενα (όχι απαραίτητος όταν δεν χρησιµοποιούµε το DFT), µπορούµε να υποθέσουµε ότι I1(i, j) = I2(i, j) = 0 οποιουδήποτε i < 0 or j < 0 or i > N-1 or j > N-1. • In this case (σε αυτή της περίπτωση) N-1 N-1 J(i, j) = Σ Σ m= 0 n = 0 I1(m, n)·I2(i-m, j-n) yields (δίνει) J = I1 * I2. 5.19 Pseudo-Code for Linear Convolution Ψευδό-Κώδικας για Γραµµική Συνέλιξη (index) { int I1 [N ] [N], I2 [N ] [N]; do { J(i, j) = 0; do { if (0 ≤ i-m ≤ N-1 and 0 ≤ j-n ≤ N-1) { J(i, j) = J(i, j) + I1(m, n) * I2(i-m, j-n); } } while (0 ≤ m, n ≤ N-1); } while (0 ≤ i, j ≤ N-1); } • Here the conditional (if) statement prevents the summation operation from occurring outside the image. Εδώ η υποθετική εντολή (if) εµποδίζει της λειτουργία αθροίσµατος από το να συµβεί έξω από της εικόνα 5.20 LINEAR SYSTEMS AND LINEAR IMAGE FILTERING ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΓΡΑΜΜΙΚΟ ΦΙΛΤΡΑΡΙΣΜΑ ΕΙΚΟΝΩΝ (index) • A process that accepts a signal or image I as input and transforms it by an act of linear convolution is a type of linear system. Μια επεξεργασία η οποία δέχεται ένα σήµα η εικόνα Ι στης είσοδο και την µετασχηµατίζει µε µια πράξη της γραµµικής συνέλιξης, είναι ένας τύπος γραµµικού συστήµατος Example (Παράδειγµα) optical image I series of lenses with MTF H transformed image J=I *H MTF = modulation transfer function electrical current I lumped electrical circuit with IR H output current J = I*H IR = impulse response and of interest to us: (και ενδιαφέρων σε µας) digital image I digital image filter output image H J=I *H 5.21 Goals of Linear Image Filtering Στόχος του Φιλτραρίσµατος Εικόνων (index) • Process sampled, quantized images to transform them into Επεξεργαζόµαστε, δειγµατοληµµένες, κβαντισµένες εικόνες για να µετασχηµατίσουµε σε - images of better quality (by some criteria) εικόνες καλύτερη ποιότητας (µε κάποια κριτήρια) - images with certain features enhanced εικόνες µε ορισµένη χαρακτηριστικά υπερτιµηµένες - images with certain features de-emphasized or eradicated εικόνες µε ορισµένα χαρακτηριστικά µε µειωµένη έµφαση ή εκριζωµένα computer program digitized image or transformed image dedicated hardware processor Some Specific Goals (Μερικοί Ιδιαίτεροι Στόχοι) • smoothing - remove noise from bit errors, transmission, etc Εξοµάλυνση – αφαίρεση θορύβου από λάθη στα bits, µετάδοση, κλπ. • deblurring - increase sharpness of blurred images Αφαίρεση θαµπότητας – µεγαλώνει την όξυνση θαµπωµένων εικόνων • sharpening - emphasize significant features, such as edges Όξυνση – δίνει έµφαση σε σηµαντικά χαρακτηριστικά, όπως ακµές • combinations of these 5.22 Συνδυασµός αυτών Characterizing Linear Filters Χαρακτηρισµός Γραµµικών Φίλτρων (index) • Any linear digital image filter can be characterized in one of two equivalent ways: Κάθε γραµµικό ψηφιακό φίλτρο εικόνας µπορεί να χαρακτηριστεί µα ένα από τους δυο ισοδύναµους τρόπους: (1) By the filter unit pulse response H = [H(i, j)] Από την κρουστική απόκριση του φίλτρου H = [H(i, j)] (2) By the filter frequency response H = [H(u, v)] Από την απόκριση συχνότητας του φίλτρου H = [H(u, v)] • The unit pulse response H and frequency response H are a DFT pair: Η κρουστική απόκριση του φίλτρου H και η απόδριση συχνοτήτων H είναι ένα DFT ζεύγος: H = DFT[ H ] H = IDFT[ H ] • The frequency response describes exactly how the system effects each frequency in an image that is passed through the system. Η αποδριση συχνότητας επεξηγεί ακριβώς πως το στύµµα επηρεάζει κάθε συχνότητα της εικόνας η οποία περνάτε διαµέσου του συστήµατος • Since (Επειδή) H(u, v) = |H(u, v)| exp{ -1 ∠H(u, v)} 5.23 an image frequency at (u, v) = (u0, v0) is amplified or attenuated by the amount |H(u0, v0)| and shifted by the amount ∠H(u0, v0). Μια συχνότητα εικόνας στο (u, v) = (u0, v0) ενισχύεται η ελάττωση µε µέγεθος |H(u0, v0)| και µετατοπίζεται από το µέγεθος ∠H(u0, v0). 5.24 Example (Παράδειγµα) (index) • Now suppose that the input to the system is a unit-amplitude sinusoidal image with frequencies (b, c): Τώρα θεωρούµαι ότι η είσοδος στο σύστηµα έχει µέγιστη τιµή µονάδα ηµιτονική εικόνα µε συχνότητα (b, c): 2π (bi + cj) -(bi + cj) I(i, j) = cos [ N (bi + cj) ] = [ W N + WN ]/2 Then the output is (Τότε η έξοδος είναι) N-1 N-1 J(i, j) = H(i, j) * I(i, j) = Σ Σ H(m, n)· I(i-m, j-n) m= 0 n = 0 1 = 2 N-1 N-1 Σ Σ m= 0 n = 0 -[b(i-m) + c(j-n)] [b(i-m) + c(j-n)] + WN H(m, n)· [W N ] 1 -(bi + cj) = 2 · WN N-1 N-1 Σ Σ m= 0 n = 0 (bm + cn) H(m, n)W N 1 (bi + cj) + 2 · WN N-1 N-1 -(bm + cn) H(m, n)W N Σ Σ m= 0 n = 0 1 -(bi + cj) (bi + cj) = 2 [W N H(b, c) + W N H(-b, -c)] 1 -(bi + cj) -1 ∠H(b,c) (bi + cj) − -1 ∠H(b,c) = 2 · |H(b, c)|[ W N e + WN e ] 2π 2π 1 -1 [ N (bi + cj)+∠H(b,c)] -1 [ N (bi + cj)+ ∠H(b,c)] = 2 · |H(b, c)|[e + e− ] 2π = |H(b, c)| cos [ N (bi + cj) + ∠H(b, c)] _________________________________________ 5.25 (index) • The unit pulse response is exactly that - the response of the system to the unit pulse Η κρουστική απόκριση είναι ακριβώς αυτό – η απόκρισης του συστήµατος στην κρουστική απόκριση δ(i, j) = • { 1; i = j = 0 0; else The unit pulse response is an effective way to model a system's response to an image since any image is a weighted sum of unit pulses. Η κρουστική απόκριση είναι ένας αποτελεσµατικός τρόπος για να σχεδιάσουµε της αποδριση συστήµατος σε µια εικόνα αφού κάθε εικόνα είναι ένα ζυγισµένο άθροισµα από παλµούς Example • (Παράδειγµα) Suppose that the input to a linear system H is a unit pulse, resulting in an output image with elements Υποθέτουµε ότι η είσοδος σε ένα γραµµικό σύστηµα Η είναι µια κρουστική απόκριση, που έχει αποτέλεσµα σε µια εικόνα εξόδου µε στοιχεία J(i, j) = H(i, j) * δ(i, j) ; 0 ≤ i, j ≤ N-1 Then (assuming zero padding) Τότε (θεωρώντας προσθήκη µηδενικών) N-1 N-1 J(i, j) = H(m, n)·δ(i-m, j-n) Σ Σ m= 0 n = 0 = H(i, j) ; 0 ≤ i, j ≤ N-1 as we would expect (!) όπως περιµέναµε (!) 5.26 SIMPLE FILTER DESIGN ΑΠΛΟΣ ΣΧΕ∆ΙΑΣΜΟΣ ΦΙΛΤΡΩΝ (index) DFT-Based Filter Design Σχεδιασµός Φίλτρων µε Βάση το DFT • Often a filter is to be designed according to frequency-domain specifications. Συχνά ένα φίλτρο θα σχεδιαστεί σύµφωνα µε τους προσδιορισµούς του πεδίου συχνοτήτων • These might arise, e.g., from a model of a linear distortion occurring in the continuous domain to be corrected digitally. Αυτό µπορεί να δηµιουργηθεί, π.χ. από ένα µοντέλο από γραµµική παραµόρφωση που συνέβη στο συνεχές πεδίο το οποίο θα διορθωθεί ψηφιακός • Given an analog or continuous-space specification HC(ωx, ωy) we can define the approximate sampled or digital version to be ∆ίνεται ένας εναλλασσόµενος προσδιορισµός ή προσδιορισµός-χώρου HC(ωx, ωy) µπορούµε να ορίσουµε την κατά προσέγγιση δειγµατοληψίας ή ψηφιακής ερµηνείας σαν H(u, v) = HC(ωx, ωy)| u v u v = HC( N , N ) ωx = , ωy = N N for 0 ≤ |u|, |v| ≤ N/2 - 1. • The filter is given values on 0 ≤ |u|, |v| ≤ N/2 - 1, since the CFT is centered and non-periodic. Το φίλτρο παίρνει τιµές στο διάστηµα 0 ≤ |u|, |v| ≤ N/2 - 1, αφού το CFT είναι κεντραρισµένο και µη-περιοδικό • Once the filter is designed the unit pulse response can also be obtained: Όταν το φίλτρο σχεδιαστεί η κρουστική απόκριση µπορεί να παρθεί από: H(i, j) = IDFT[H(u, v)] 5.27 Low-Pass, Band-Pass, and High-Pass Filters Κατωδιαβατα, Ζωνοδιαβατα, και Ανωδιαβατα Φιλτρα (index) • The terms low-pass, band-pass, and high-pass are only rough qualitative descriptions of a system's frequency response. Οι όροι κατωδιαβατο, , και πανωδιαβατο είναι µόνο ατελής ποιοτική επεξηγήσει της απόκρισης συχνότητας του συστήµατος • "Low-pass" - attenuates all but the "lower" frequencies. ‘Κατωδιαβατο’ – µειώνει όλες εκτός από τις ‘χαµηλές’ συχνότητες • "Band-pass" - attenuates all but an intermediate range of "middle" frequencies. ‘Ζωνοδιαβατο’ – µειώνει όλες εκτός από ένα ενδιάµεσο διάστηµα ή ‘µέση’ συχνότητα • "High-pass" - attenuates all but the "higher" frequencies. ‘Ανωδιαβατο’ – µειώνει όλες εκτός από τις ‘υψηλές’ συχνότητες • We have actually seen examples of these already: the zero-one frequency masking results. Έχουµε ακριβώς δει παραδείγµατα από αυτές ήδη: το µηδέν-ένα αποτέλεσµα µάσκας εικόνας General Uses of Filter Types Γενική Χρήσεις των ∆ιάφορων Τύπων Φίλτρων • Low-pass filters are typically used to Τα Κατωδιαβατα φίλτρα χρησιµοποιούνται τυπικά για - smooth noise (εξοµάλυνση θορύβου) - blur image details to emphasize gross features Θόλωνα λεπτοµερειών εικόνας για έµφαση • High-pass filters are typically used to Τα πανωδιαβατα φίλτρα χρησιµοποιούνται τυπικά για 5.28 - enhance image details and contrast υπερτίµηση λεπτοµερειών της εικόνας και αντιθέσεις • remove image blur (αφαίρεση θαµπώµατος εικόνας) Bandpass filters are usually highly specialized Τα ζωνοδιαβατα φίλτρα είναι συνήθως για ειδικές χρήσεις 5.29 Example - Low-Pass Filter Παράδειγµα – Κατωδιαβατο Φίλτρο (index) • The gaussian filter with frequency response Το gaussian φίλτρο µε απόκριση συχνότητας HC(ωx, ωy) 2 2 = exp [ -2π 2σ2(ω x + ω y ) ] hence (έτσι) H(u, v) = exp [ -2π 2σ2(u2 + v2) / N2 ] ; 0 ≤ |u|, |v| ≤ N/2 -1 which quickly falls off for larger frequencies: το οποίο πέφτει γρήγορα χαµηλά για µεγαλύτερες συχνότητες: 1.0 1.0 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0.0 -15 -12 -9 -6 -3 0 3 6 9 12 15 0.0 -15 -12 -9 -6 -3 0 3 6 9 12 15 u u N = 32, σ = 1 N = 32, σ = 1.5 Plots of one matrix row (v = 0) • The gaussian is an important low-pass filter. Το gaussian είναι ένα σηµαντικό κατωδιαβατο φίλτρο • 2-D Gaussians and their DFTs were shown in Module 4 5.30 2-∆ Gaussians και τα DFTs τους φαίνονται στο κεφαλαίο 4 5.31 Example - Band-Pass Filter Παράδειγµα – Ζωνοδιαβατο Φίλτρο (index) • It is always possible to define a bandpass filter by taking the difference of two low-pass filters identical except for a frequency scaling factor. Είναι πάντα πιθανό να ορίσουµε µεσοδιαβατο φίλτρο µε να πάρουµε την διάφορα δυο κατωδιαβατων όµοιων φίλτρων εκτός από τον συντελεστή συχνότητας • The following is a plot of the difference-of-gaussians (DOG) from the previous example: Ακολουθεί µε γραφική παράσταση της διαφορας-των-gaussians (DOG) από το προηγούµενο παράδειγµα HC(ωx, ωy) = exp [ -2(σπ)2(ω 2x + ω 2y ) ] - exp [ -2(Kσπ)2(ω 2x + ω 2y ) ] hence (έτσι) H(u, v) = exp [ -2(σπ)2(u2 + v2) / N2 ] - exp [ -2(Kσπ)2(u2 + v2)/N2 ]; 0 ≤ |u|, |v| ≤ N/2 -1 where (όπου) N = 32 και K = 1.5. 1.0 0.8 0.6 0.4 0.2 0.0 -15 -12 -9 -6 -3 0 3 6 9 12 15 u • The DOG filter will be very useful later. 5.32 Το DOG φίλτρο θα είναι πολύ χρήσιµο αργότερα • DEMO 5.33 Example - High-Pass Filter Παράδειγµα – Ανωδιαβατο Φίλτρο (index) • The following filter is also important Το φίλτρο που ακολουθεί είναι επίσης σηµαντικό 2 2 = A(ω x + ω y ) HC(ωx, ωy) hence (έτσι) H(u, v) = A(u2 + v2) / N2 ; 0 ≤ • |u|, |v| ≤ N/2 -1 It is a DFT approximation to the Fourier transform of the continuous Laplacian Είναι το κατά προσέγγιση DFT του µετασχηµατισµού Fourier του συνεχούς Laploacian 2 ∂ 2 ∇ = 2 ∂x • 2 ∂ + 2 ∂y Here is the plot for A = 4.5 (N = 32): Εδώ είναι η γραφική παράσταση για A = 4.5 (N = 32): 1.0 0.8 0.6 0.4 0.2 0.0 -15 -12 -9 -6 -3 0 3 6 9 12 15 u 5.34 • DEMO LINEAR IMAGE ENHANCEMENT ΓΡΑΜΜΙΚΗ ΒΕΛΤΙΩΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΕΙΚΟΝΑΣ (index) • Image enhancement implies a process whereby the visual quality of the image is improved. Η βελτίωση της ποιότητας εικόνας συνεπάρει µια επεξεργασία όπου η οπτική ποιότητα της εικόνας καλυτερεύει • We have studied certain point operations and geometric operations that can be described as "enhancement." Μελετήσαµε κάποιες λειτουργίες απλού στίγµατος και γεωµετρικές λειτουργίες οι οποίες µπορούν να χρησιµοποιηθούν σαν ‘βελτίωση’ • Linear image enhancement specifically means a process of smoothing irregularities or noise that has somehow corrupted the image, without destroying the image information. Η γραµµική βελτίωση της ποιότητας εικόνας ειδικά σηµαίνει µια επεξεργασία εξοµαλύνσεις ανωµαλιών ή θορύβου ο οποίος έχει διαφθείρει την εικόνα κάπως, χωρίς να καταστρέψει την πληροφορία της • The noise is usually modeled as an additive noise or as a multiplicative noise. Ο θόρυβος συνήθως σχεδιάζεται σαν αθροιστικώς θόρυβος ή σαν θόρυβος πολλαπλασιασµού • We will consider additive noise now. Multiplicative noise is better handled by a nonlinear filtering technique known as homomorphic filtering. Θα εξετάσουµε τον αθροιστικό θόρυβο τώρα. Ο θόρυβος πολλαπλασιασµού χειρίζεται καλύτερα από µη-γραµµική τεχνική φιλτραρίσµατος γνωστή ως ‘οµοιοµορφικο’ φιλτράρισµα Additive White Noise Model Μοντέλο Αθροιστικού Λευκού Θορύβου (index) • We model additive white noise as an additive image N whose values are highly chaotic or unpredictable. 5.35 Σχεδιάζουµε τον αθροιστικό λευκό θόρυβο σαν αθροιστικοί εικόνα Ν της οποίας οι τιµές είναι υψηλά χαοτικές ή απροσδιόριστες • Additive noise can occur as thermal noise in the circuitry, transmission noise when an image is sent over a channel, etc. Ο Αθροιστικός θόρυβος µπορεί να συµβεί σαν θερµικός θόρυβος στο κύκλωµα, θόρυβος µετάδοσης όταν η εικόνα σταλεί µέσα από κάποιο κανάλι, κλπ. • It may occur before the image is sampled, i.e., the continuous image JC(x, y) received is of the form Μπορεί να συµβεί πριν την δειγµατοληψία της εικόνας, π.χ., η συνεχής εικόνα JC(x, y) που λαµβάνεται είναι της µορφής JC(x, y) = IC(x, y) + NC(x, y) where NC(x, y) is a white noise process. όπου NC(x, y) είναι λευκός θόρυβος • White noise is assumed to be zero-mean: if we take the average of M arbitrary samples NC(xi, yi) ; i = 1 ,..., M: Ο λευκός θόρυβος θεωρείται να έχει µηδενικό-µεσαίο: αν πάρουµε τον µέσο όρο από Μ οποιαδήποτε δείγµατα NC(xi, yi) ; i = 1 ,..., M: 1 meanM[NC] = M M Σ i=1 NC(xi, yi) then the meanM[NC] → 0 as M → ∞ . On the average, the noise falls around the value zero.* τότε το meanM[NC] → 0 όταν M → ∞ . Κατά µέσο όρο, ο θόρυβος πέφτει γύρο από την τιµή µηδέν.* *Strictly speaking, the noise is also "mean-ergodic." *Ακριβώς µιλώντας, ο θόρυβος είναι επίσης "mean-ergodic." 5.36 Spectrum of White Noise Φάσµα του Λευκού Θορύβου (index) • The energy spectrum of NC(x, y) is the Fourier transform Το ενεργειακό φάσµα του NC(x, y) είναι ο µετασχηµατισµός Fourier NC(ωx, ωy) = Fourier transform of NC(x, y) • For white noise, the average squared magnitude (over M noise images) of NC(ωx, ωy) is constant over all frequencies (flat spectrum, hence white): Για το λευκό θόρυβο, το τετραγωνικό µέγεθος του µέσου όρου (πάνω σε Μ εικόνες θορύβου) του NC(ωx, ωy) είναι σταθερή για όλες τις συχνότητες (επίπεδο φάσµα, έτσι λευκό) 2 meanM[|NC(ωx, ωy)| ] → η as M → ∞ for all (ωx, ωy). • On the average, white noise contains all frequencies in equal amounts (flat spectrum, hence white). Κατά µέσο όρο, ο λευκός θόρυβος περιλαµβάνει όλες τις συχνότητες σε ίσα µεγέθη (επίπεδο φάσµα, έτσι λευκό) • The constant value η that the spectrum takes is called the noise power. We will use this later. Η σταθερή τιµή η της οποίας τα φάσµα παίρνει λέγεται η ισχύς του θορύβου. Θα το χρησιµοποιήσουµε αυτό αργότερα η = noise power 5.37 (index) • White noise is an approximate model of situations where the image spectrum IC(ωx, ωy) has added to it a broadband noise signal: Ο λευκός θόρυβος είναι ένα κατά προσέγγιση µοντέλο της κατάστασης όπου το φάσµα της εικόνας IC(ωx, ωy) προσθέτεται στο σήµα φαρδιού φάσµατος θορύβου: JC(ωx, ωy) = IC(ωx, ωy) + NC(ωx, ωy) I C(x) NC (x) + x x N ( ω x) I ( ω x) + ωx • ωx The objective of linear image enhancement is to remove as much of the high-frequency noise spectrum as possible while preserving as much of the image spectrum as possible. Ο σκοπός της γραµµικής βελτίωσης ποιότητας της εικόνας είναι για να αφαιρεθεί όσο το περισσότερο φάσµα εικόνας • This is generally accomplished by a low-pass filter of fairly wide bandwidth (since images are themselves fairly wideband). Αυτό γενικά επιτυγχάνεται από ένα κατωδεαβατο φίλτρο µε κάποιο ευρύ φάσµα (επειδή οι εικόνες έχουν οι ίδιες ευρύ φάσµα) 5.38 H ( ω x) ωx Digital White Noise (Ψηφιακός Λευκός Θόρυβος) (index) • We make a similar model for digital additive white noise: Κάνουµε παρόµοιο µοντέλο για τον ψηφιακό αθροιστικό θόρυβο: J=I+N where N is a digital white noise image. Όπου Ν είναι µια εικόνα µε ψηφιακό γραµµικό θόρυβο • On the average (!) the elements of N will be zero. Κατά µέσο όρο (!) τα στοιχεία του Ν θα είναι µηδέν • The DFT of the noisy image will be a sum of the DFT of the original and the DFT of the noise image: Το DFT της εικόνας θορύβου θα είναι ένα άθροισµα του DFT της αρχικής εικόνας και το DFT της εικόνας θορύβου J =I +N • On the average the noise DFT will contain a broad band of frequencies. Κατά µέσο όρο το DFT θορύβου θα είναι θα περιλαµβάνει ένα ευρύ φάσµα από συχνότητες Noise Smoothing - Average Filter Εξοµάλυνση Θορύβου – Φίλτρο Μέσου Όρου • If we replace each pixel in the noisy image by the average of its local neighbors within an M x M window: 5.39 Αν αντικαταστήσουµε κάθε στίγµα στην εικόνα που περιέχει θόρυβο µε τον µέσο όρο των τοπικών γειτόνων µέσα σε ένα M x M παράθυρο: 3x3 then the image will be smoothed. τότε η εικόνα θα εξοµαλυνθεί (index) • Reasoning: (Λογικη:) (i) averaging elements will reduce the noise mean towards zero. Ο µέσος όρος στοιχείων θα περιορίσει τον µεσαίο θορύβου προς το µηδέν (ii) the square average filter is a linear digital filter with unit pulse response Το φίλτρο µέσου όρου τετράγωνου είναι ένα γραµµικό ψηφιακό φίλτρο µε κρουστική απόκριση H(i, j) = 1 2 ; 0 ≤ i, j ≤ M-1, where M << N M Thus the filtered (linearly convolved) image Έτσι η φιλτραρισµένη (γραµµικά συνελιγµενη) εικόνα K = H*J = H*I + H*N K =H ⊗ J =H ⊗ I +H ⊗ N will have the image and noise spectra affected in the same way: θα έχει την εικόνα και το φάσµα θορύβου επηρεασµένα µε τον ίδιο τρόπο: 5.40 H (u) 1 u Exercise: Show that H (0, 0) = 1. Άσκηση: ∆ήξτε ότι H (0, 0) = 1. • Averaging more elements (larger M) produces a narrower spectrum: Παίρνοντας τον µέσο όρο περισσότερων στοιχείων (µεγαλύτερο Μ) δηµιουργεί στενότερο φάσµα: H (u) 1 u (index) • The size of the average filter is usually taken to be an intermediate value to balance the tradeoff between noise smoothing and image smoothing. Το µέγεθος του φίλτρου µέσου όρου συνήθως παίρνεται σαν µια ενδιάµεση τιµή για να ισοσταθµίσει την διάφορα µεταξύ της εξοµάλυνση θορύβου και εξοµάλυνση εικόνας • Typical average filter sizes are M x M = 3 x 3, 5 x 5, ..., 15 x 15 (lots of smoothing) for a 512 x 512 image. Τυπικά µεγέθη φίλτρων µέσου όρου είναι M x M = 3 x 3, 5 x 5, ..., 15 x 15 (πολύ εξοµάλυνση) για µια 512 x 512 εικόνα • Examples (Παραδειγµατα) • DEMO (slow) 5.41 ΠΑΡΑ∆ΕΙΓΜΑ ΦΙΛΤΡΟΥ ΜΕΣΟΥ ΟΡΟΥ ΣΤΟ MATLAB I = imread(‘examleim.tif’); J = imnoise(I, ‘gaussian’, 0.02); K = filter2(fspecial(‘average’,3),J)/255; imshow(J); figure, imshow(K); Noise Smoothing - Ideal Low-Pass Filter Εξοµάλυνση Θορύβου – Ιδανικό Κατωδιαβατο Φίλτρο (index) • It is also possible to use a zero-one filter or ideal low-pass filter by designing in the DFT domain: Είναι επίσης πιθανών να χρησιµοποιούµε ένα φίλτρο µηδενός-ενός ή ένα ιδανικό κατωδιαβατο φίλτρο µε σχεδίαση στο πεδίο του DFT H(u, v) = 1 for 2 u +v 2 ≤ Ucutoff ≤ N/2 - 1 = 0 elsewhere This is useful if it is possible in some way to estimate the highest meaningful radial frequency Ucutoff in the images being studied Αυτό είναι χρήσιµο αν είναι πιθανό µε κάποιο τρόπο να υπολογίσουµε την πιο µεγάλη σηµαντική ακτινωτή συχνότητα (0, 0) u v U cutoff (N-1, N-1) centered DFT 5.42 • DEMO Noise Smoothing - Gaussian Filter Εξοµάλυνση Θορύβου – Φίλτρο Gaussian (index) • The Gaussian filter is an effective smoother: Το φίλτρο Gaussian είναι ένα αποτελεσµατικό φίλτρο εξοµαλύνσεις H(u, v) = H(u2 + v2) = exp [ -2π 2σ2(u2 + v2) / N2 ] ; 0 ≤ |u|, |v| ≤ N/2 -1 • It has the advantage of giving more weight to the closer neighbors. Έχει το πλεονέκτηµα να δίνει περισσότερο βάρος στους κοντινότερους γείτονες • DFT design usually involves setting the half-peak bandwidth to Ucutoff by selecting σ, i.e., set 2 2 u + v = Ucutoff , solve for σ: Ο σχεδιασµός του DFT συνήθως περιλαµβάνει τοποθέτηση του bandwidth µέσης-κορυφής στο 2 2 Ucutoff µε την επιλογή του σ, π.χ., θέτουµε u + v = Ucutoff , λύνουµε για το σ: 2 exp [ -2π 2σ2U cutoff / N2 ] = 1/2 giving (δινει) N σ = πU cutoff • log 2 N ≈ 0.19 U cutoff Most often the user will experiment with different values of σ. Στις περισσότερες περιπτώσεις ο χρήστης θα πειραµατισθεί µε διαφορετικές τιµές του σ. • DEMO 5.43 LINEAR IMAGE RESTORATION (DECONVOLUTION) ΓΡΑΜΜΙΚΗ ΑΠΟΚΑΤΑΣΤΑΣΗ ΕΙΚΟΝΑΣ (DECONVOLUTION) (index) • Often an image that is obtained digitally has already been corrupted by a linear process. Συχνά µια εικόνα η οποία πάρθηκε ψηφιακά έχει ήδη διευθαρθει από κάποια γραµµική επεξεργασία • This may be due to motion blur, or blurring due to defocusing of the camera. Αυτό µπορεί να γίνει λόγο του θαµπώµατος από κίνηση, ή θάµπωµα λόγο της µη-εστίασης της κάµερας • We can model such an observed image as the result of a linear convolution: Μπορούµε να σχεδιάσουµε µια τέτοια παρατηρηµένη εικόνα σαν το αποτέλεσµα γραµµικά συνέλιξης: JC(x, y) = GC(x, y)*IC(x, y) where GC(x, y) is a linear distortion. όπου το GC(x, y) είναι µια γραµµική παραµόρφωση • Then also (Τότε επίσης) J C(ωx, ωy) = GC(ωx, ωy)· I C(ωx, ωy) • The sampled image will then be of the form (assuming the sampling rate is sufficiently high Sampling Theorem) Η εικόνα δειγµατοληψίας τότε θα είναι της µορφής (θεωρώντας τη συχνότητα δειγµατοληψίας ικανοποιητικά ψιλή – Θεώρηµα δειγµατοληψίας) J = G*I with DFT J =G ⊗I 5.44 • The distortion G is almost always low-pass (blurring). Το παραµορφωµένο G είναι επίσης πάντα κατωδιαβατο (θάµπωµα) Deconvolution - Inverse Filter - Φίλτρο Αντίστροφης (index) • Often it is possible to make an estimate of the distortion G. Συχνά είναι πιθανό να κάνουµε ένα υπολογισµό της παραµόρφωσης G. • This may be possible by examining the physics of the situation. Αυτό µπορεί να είναι πιθανό µελετώντας της φυσική της κατάστασης • Motion blur (movement of the camera) is usually along one dimension or direction. If this direction can be determined, then an appropriate filter can be designed. Το θάµπωµα από κίνηση (κίνηση της κάµερας) είναι συνήθως κατά µήκος µιας διάστασης ή κατεύθυνσης. Αν αυτή η κατεύθυνση µπορεί να υπολογιστεί, τότε ένα προσεγγιστικό φίλτρο µπορεί να σχεδιαστεί • Reversing the process of the linear distortion G is called deconvolution. It is done using the inverse inverse filter G of the distortion. Αντιστρέφοντας την διαδικασία της γραµµικής παραµόρφωσης G λέγετε Deconvolution. Γίνεται inverse χρησιµοποιώντας το φίλτρο αντίστροφης G της παραµόρφωσης • In the DFT domain, the inverse filter G inverse is defined by inverse ορίζεται από Στο πεδίο του DFT, το φίλτρο αντίστροφης G inverse G (u, v) = 1 / G(u, v) ; 0 ≤ u, v ≤ N-1 provided that G(u, v) ≠ 0 for 0 ≤ u, v ≤ N-1. ∆εδοµένου ότι G(u, v) ≠ 0 για 0 ≤ u, v ≤ N-1. • We then have for the DFT of the filtered (restored) image: 5.45 Τότε έχουµε για το DFT της φιλτραρισµένης (αποκατεστηµένης) εικόνας: K =G inverse ⊗G ⊗I =I ! • Our goal is to use digital means to deconvolve image blur. As we will see, this can be quite difficult! Ο σκοπός µας είναι να χρησιµοποιήσουµε ψηφιακούς τρόπους για να το θάµπωµα της εικόνας. Όπως θα δούµε, αυτό θα είναι κάπως δύσκολο • Sometimes it is impossible, or can only be done by fixing the optics: a famous example. Μερικές φορές είναι απίθανο, η µπορεί να γίνει µόνο µε οπτική διόρθωση: ένα διάσηµο παράδειγµα. • Usually only an estimate of the blur G is obtainable. Συνήθως παίρνεται µόνο ένας υπολογισµός της θαµπότητας G • The inverse of a low-pass distortion is always high-pass: Η αντιστροφή της κατωδιαβατης παραµόρφωσης είναι πάντα ανωδιαβατο: 1.0 0.8 0.6 0.4 0.2 0.0 -15 -12 -9 -6 -3 0 3 6 9 12 15 u Gaussian distortion 5.46 80 60 40 20 0 -15 -12 -9 -6 -3 0 3 6 u Inverse filter 9 12 15 • Note: the inverse filter takes value 1.0 at (u, v) = (0, 0) Σηµείωση: το φίλτρο αντιστροφής παίρνει τιµή 1.0 στο (u, v) = (0, 0) • At high frequencies the designer must be careful! Στις υψηλές συχνότητες ο σχεδιαστής πρέπει να είναι προσεκτικός • DEMO Deconvolution - Missing Frequencies Deconvolution - Ελλιπές Συχνότητες (index) • Unfortunately, things are not always so "ideal" in the real world. ∆υστυχώς, τα πράγµατα δεν είναι πάντα τόσο ‘ιδανικά’ στην πραγµατικότητα • Sometimes it is the case that the frequency response of the distortion takes zero value at certain frequencies. Μερικές φορές είναι η περίπτωση όπου η απόκριση συχνότητας της παραµόρφωσης παίρνει τιµή µηδέν σε µερικές συχνότητες • Suppose that for some (u0, v0) it is true that G(u0, v0) = 0. The usual definition for the inverse filter would give Θεωρούµαι ότι για κάποια (u0, v0) είναι αλήθεια ότι φίλτρο αντίστροφης θα δώσει G(u0, v0) = 0. Ο σύνηθες ορισµός για το Ginverse(u0, v0) = ∞ which is meaningless. που δεν έχει σηµασία 5.47 • The reality: any frequencies that are zeroed by a linear distortion are unrecoverable in practice lost forever! Στην πραγµατικότητα: κάθε συχνότητα η οποία µηδενίζεται από µια γραµµική παραµόρφωση είναι αναντικατάστατες στην πράξη – χάνονται για πάντα! • The best that can be done is to reverse the distortion at the non-zero values. Το καλύτερο που µπορεί να γίνει είναι να αντιστρέψουµε την παραµόρφωση στις µη-µηδενικές τιµές • Sometimes this can be over much of the frequency plane. Some optical systems remove a large angular regions of frequencies: Μερικές φορές αυτό µπορεί να είναι πάνω σε πολλά επίπεδα συχνοτήτων. Μερικά οπτικά συστήµατα αφαιρούν ένα µεγάλο γωνιακό κοµµάτι συχνοτήτων: unrecoverable "zeroed" frequencies Pseudo-Inverse Filter (Φιλτρο Ψευδο-Αντιστροφης) (index) • The pseudo-inverse filter G p-inverse is defined p-inverse ορίζεται Το φίλτρο ψευδό-αντίστροφης G Gp-inverse(u, v) = 1 / G(u, v) ; if G(u, v) ≠ 0 = 0 ; if G(u, v) = 0 for 0 ≤ u, v ≤ N-1. • Thus, no attempt is made to recover zeroed frequencies. 5.48 Έτσι, καµία προσπάθεια δεν γίνεται για επανάκτηση µηδενικών συχνοτήτων • • • The conservative approach is to set the pseudo-inverse filter to be zero in the known region of missing frequencies. Η συντηρητικοί προσέγγιση είναι να µηδενίσουµε το φίλτρο ψευδό-αντίστροφης στο γνωστό κοµµάτι ελλιπών συχνοτήτων In this way any spurious (noise) frequencies will be eradicated. Με αυτό τον τρόπο κάθε νόθες (θορυβώδεις) συχνότητες θα εκλιπόντα DEMO Deconvolution in the Presence of Noise Deconvolution στην παρουσία θορύβου • (index) The worst case occurs when the image I is distorted both by a linear distortion G and has additive noise N added to it. Η χειρότερη περίπτωση συµβαίνει όταν η εικόνα Ι παραµορφώνεται και από γραµµικές παραµορφώσεις G και περιλαµβάνει επίσης αθροιστικό θόρυβο • This may occur when, for example, an image that is linearly distorted (G) and then sent over a noisy channel. Αυτό µπορεί να συµβεί όταν, για παράδειγµα , µια εικόνα η οποία είναι γραµµικά παραµορφωµένη (G) και τότε στέλνεται µέσα από ένα θορυβώδες κανάλι. • The general model is: (Το γενικό µοντέλο είναι:) J = G*I + N where G is the linear distortion and N is a digital white noise image. όπου G είναι η γραµµική παραµόρφωση και Ν είναι η εικόνα ψηφιακού λευκού θορύβου • The DFT of the corrupted image will be a sum of the DFT of the linearly distorted original and the DFT of the noise image: Το DFT της παραµορφωµένης εικόνας θα είναι ένα άθροισµα του DFT της γραµµικής παραµόρφωσης της αρχικής εικόνας και του DFT της εικόνας θορύβου J =G ⊗I +N • Filtering with a linear filter H will produce the result 5.49 Το φιλτράρισµα µε το γραµµικό φίλτρο Η θα πατάξει το αποτέλεσµα K = H*J = H*G*I + H*N or K =H ⊗J =H ⊗G ⊗I +H ⊗N • The problem is that neither a low-pass filter (to smooth noise, but won't correct the blur) nor a highpass filter (e.g., the inverse filter, which will amplify the noise) will work. Το πρόβληµα είναι ότι ούτε το κατωδιαβατο φίλτρο (για να εξοµαλύνει το θόρυβο, αλλά να µην διόρθωση το θάµπωµα) ούτε το κατωδιαβατο φίλτρο (π.χ., το φίλτρο αντίστροφης, το οποίο θα ενίσχυση το θόρυβο) θα δουλεύει • (index) In fact if the inverse filter is used, we obtain Είναι γεγονός ότι αν το φίλτρο αντίστροφης χρησιµοποιηθεί, θα πάρουµε inverse inverse inverse *J = G *G*I + G *N K=G or K • =G inverse ⊗G ⊗I +G inverse ⊗N =I +G inverse ⊗N In this case the blur is corrected, but the restored image has horribly amplified high-frequency noise added to it. Σε αυτή την περίπτωση το θάµπωµα διορθώνεται, αλλά η αποκαταστηµένη εικόνα έχει τροµερά ενισχυµένο υψηλής-συχνότητας θόρυβο προσθεµένο σε αυτή Wiener Filter (Φιλτρο Wiener) (index) • The Wiener filter (after Norbert Wiener) is a solution to this problem. Το φίλτρο Wiener (από τον Norbert Wiener) είναι µια λύση σε αυτό το πρόβληµα • The DFT of the Wiener filter for the blur G and white noise N models we are using is given by Το DFT του φίλτρου Wiener για τα µοντέλα θαµπώµατος G και του λευκού θορύβου Ν που χρησιµοποιούµε δίνεται από GWiener(u, v) = • G*(u, v) |G(u, v)| 2 +η for 0 ≤ u, v ≤ N-1. Often the noise power η is unknown or unobtainable. The designer may then experiment with heuristic values for η. 5.50 Συχνά η ισχύς του θορύβου η είναι άγνωστη ή ανεπίτευκτη. Ο σχεδίασης µπορεί τότε να πειραµατισθεί µε τυχαίες τιµές του η. • We will now examine the motivation behind this filter. Θα εξετάσουµε τώρα το κίνητρο πίσω από αυτό το φίλτρο Observations on the Wiener Filter Παρατηρήσεις για το Φίλτρο Wiener (index) • If the noise power is zero (no noise: η = 0), the Wiener filter reduces to the inverse filter: Αν η ισχύς θορύβου είναι µηδέν (καθόλου θόρυβο: η = 0), το φίλτρο Wiener συρρικνώνεται στο φίλτρο αντιστροφής: G Wiener G*(u, v) 1 inverse (u, v) = =G (u, v) 2= G(u, v) G(u, v) | | for 0 ≤ u, v ≤ N-1 which is highly desirable. για 0 ≤ u, v ≤ N-1 το οποίο είναι πολύ επιθυµητό • If there is no blur (G(u, v) = 1 for all u, v), the Wiener filter reduces to: Αν δεν υπάρχει καθόλου θάµπωµα (G(u, v) = 1 για όλα τα u, v), το φίλτρο Wiener συρρικνώνεται στο: G Wiener 1 (u, v) = 1 +η for 0 ≤ u, v ≤ N-1 which is a do-nothing filter. So, the Wiener filter is not of much interest unless there is a blur. Interesting, however, the MSE is less relative to the original than the MSE of the noisy image. Το οποίο είναι φίλτρο που δεν κάνει τίποτα. Έτσι, το φίλτρο Wiener δεν είναι πολύ χρήσιµο αν δεν υπάρχει θάµπωµα. Ενδιαφέρων, ωστόσο, ο MSE είναι λιγότερο σχετικός στην αρχική εικόνα από τον MSE της εικόνας µε θόρυβο • Obviously, if there are frequencies zeroed by the linear distortion G then it is best to define the pseudo-Wiener filter: 5.51 Φανερά, αν υπάρχουν συχνότητες µηδενισµένες από γραµµική παραµόρφωση G τότε είναι καλύτερα να ορίσουµε το φίλτρο ψευδό-Wiener: Gp-Wiener(u, v) = G*(u, v) |G(u, v)| 2 +η ; if G(u, v) ≠ 0 =0 • ; if G(u, v) = 0 Noise in the "missing region" of frequencies will be eradicated. Ο θόρυβος στο ‘ελλιπές κοµµάτι’ συχνοτήτων θα αφαιρεθεί • DEMO (blur sigma < 4, eta << 1, noise sigma < 10) APPLICATION EXAMPLE: OPTICAL SERIAL SECTIONING ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΕΦΑΡΜΟΓΗΣ: ΟΠΤΙΚΗ ∆ΙΑ∆ΟΧΙΚΗ ∆ΙΑΤΟΜΗ (index) • Optical systems often blur the images they create: Τα οπτικά συστήµατα συχνά θαµπώνουν τις εικόνες που δηµιουργούν visible light scene • optical system blurred image One possible solution: (Μια πιθανη λυση:) blurred image digitize "inverse blur" computer program deblurred image Optical Sectioning Microscopy Μικροσκοπία οπτικής διατοµής 5.52 incremental vertical translation of microscope (step motor) region of best focus • One image is taken at each focusing plane, giving a sequence of 2-D images, or a 3-D image of optical density. Μια εικόνα παίρνεται σε κάθε εστιακό επίπεδο, δίνει µια σειρά από 2-∆ εικόνες, ή µια 3-∆ εικόνα οπτικής πυκνότητας 5.53 (index) (Ideal) 3-D image of optical density • The image has a 3-D DFT: (Η εικονα εχει 3-∆ DFT) Magnitude of (ideal) 3-D DFT • We have been able to show that in this system three effects occur: Μπορέσαµε να δείξουµε ότι σε αυτό το σύστηµα τρία διαφορετικά αποτελέσµατα συµβαίνουν: (1) A linear low-pass distortion G. Μια γραµµική κατωδιαβατη παραµόρφωση G. (2) Approximately white additive noise. Κατά προσέγγιση λευκός αθροιστικός θόρυβος (3) A large biconic region of frequencies aligned in the direction of the optical axis is zeroed. Μια µεγάλη δυκονικη περιοχή συχνοτήτων, ευθυγραµµισµένη στην κατεύθυνση του οπτικού άξονα, µηδενίζετε 5.54 (index) Region of 3-D frequencies zeroed by the optical sectioning microscope • Notice that the frequency (u, v, w) = (0, 0, 0) is zeroed also. This means that the lowest (background level) frequency is lost. Παρατηρήστε ότι η συχνότητα (u, v, w) = (0, 0, 0) µηδενίζεται επίσης. Αυτό σηµαίνει ότι η χαµηλότερη (πεδίο φόντου) συχνότητα χάθηκε • There is no way to recover this biconic region of frequencies. ∆εν υπάρχει τρόπος για να επανακτήσουµε αυτή τη δυκονικη περιοχή συχνοτήτων • So: the 3-D images obtained have been blurred, had a large 3-D region of frequencies removed, and have had some noise added. Έτσι: οι 3-∆ εικόνες που πάρθηκαν έχουν θαµπωθεί, είχαν µια µεγάλη 3-∆ περιοχή συχνοτήτων αφαιρεµένη, και είχαν κάποιο θόρυβο προσθεµένο • In our processed results, we demonstrate the efficacy of Στο επεξεργασµένο αποτέλεσµα µας, επιδεικνύουµε την ικανότητα του - pseudo-inverse filtering (ψευδο-αντιστροφου φιλτρου) - pseudo-Wiener filtering (ψευδο-Wiener φιλτρου) two 3-D optical sectioning images of δυο 3-∆ εικόνες οπτικής διατοµής από - a pollen grain (κοκου γυρης) - a pancreas Islet of Langerhans (large collection of cells) 5.55 το πανκρεας Islet of Langerhans (µεγάλη συλλογή κύτταρων) • EXAMPLE (ΠΑΡΑ∆ΕΙΓΜΑ) An older microscope technology Μια παλιά τεχνολογία µικροσκοπίου 5.56 EXERCISES (ΑΣΚΗΣΕΙΣ) (index) 1. Compute the wraparound convolution of the two 3 x 3 images shown by direct computation: Υπολογίστε την κυκλική συνέλιξη των δυο 3 x 3 εικόνων πιο κάτω µε ευθύ υπολογισµό 0 0 5 0 0 5 0 0 5 0 -1 0 -1 4 -1 0 -1 0 5.57 2. Compute the linear convolution of the same two 3 x 3 images by direct computation: Υπολογίστε την γραµµική συνέλιξη των δυο 3 x 3 εικόνων µε ευθύ υπολογισµό: 0 0 5 0 0 5 0 0 5 0 -1 0 -1 4 -1 0 -1 0 5.58 3. Compute the 2 x 2 DFT of the 2 x 2 image shown: Υπολογίστε το 2 x 2 DFT της 2 x 2 εικόνας πιο κάτω: 0 1 -1 0 4. Compute the DFT magnitude and phase for the previous problem. Υπολογίστε το µέγεθος του DFT και την φάση για το προηγούµενο πρόβληµα 5.59
© Copyright 2024 Paperzz