3/8/29 Digitale bilder med spesielt fokus på medisinske bilder Karsten Eilertsen Radiumhospitalet Neste to forelesninger Torsdag 29/: Enkel innføring i digitale bilder Eksempler på noen enkle metoder for bildebehandling og bildeanalyse Torsdag 5/2 Bildebehandlingsteori Transformasjoner, Konvolusjoner, Fourier-transformasjonen, filtrering, terskling, segmentering, morfologi Bildefiler - bildeformater De aller fleste bildeformater har en intern struktur som består av et filhode + pikselverdier Filhode kan inneholde informasjon om Pasienten Modalitet Opptaksbetingelser Pikselegenskaper... Typisk bildefil Filhode Pielverdier For å kunne lese en bildefil må den interne strukturen være kjent. % kompresjon 6% kompresjon 8% kompresjon Joint Photographic Eperts Group JPEG992 / JPEG2 99% kompresjon JPEG992: Støtter 6-bit farge ( velgnet for fotografier) Kompresjon basert på en cosinnustransform JPEG2: Kompresjon basert på wawelets PRO jpeg2: Høyere kompresjonsfaktor gitt samme tap Støtte millioner av farger Contra jpeg2: angsommere dekompresjon GIF Graphics Interchange Format empel-ziv-welch (ZW) kompresjon Støtter kun 8-bits gråskala / farge (altså ikke så velgenet for fotografier Støtter animasjoner PNG Portable Network Graphics PNG ligner på GIF og ble oppfunnet for å kunne tilby et gratis (og forbedret) filformat sml. med GIF spesielt tilpasset web-applikasjoner / internet. Kun tapsløs kompresjon (store filer) Støtter palett-baserte (24-bit RGB) gråskala og farge bilder. Støtter dog ikke animasjoner (jfr. MNG)
3/8/29 DICOM Ikke et filformat, men en kommunikasjonsstandard, dvs. overførings-syntaksen må i prinsippet være kjent for at en (eller en sammenstillign av flere) Dicom-melding (er) skal kunne forstås. Meldinger i en gitt assosiasjon lagres dog gjerne på en strukturert måte som filer, og dicom-filer eksisterer i praksis. Hva er et digitalt bilde? Diskret, numerisk representasjon av en intensitetsfordeling organisert i en 2D matrise f(,y), der,y er romlige koordinater. Hvert element i matrisen, piksel, har en verdi typisk i området: [,255] -byte bilde [-32767,+32767] eller [,65356] 2-bytes bilde Pikselverdien kan være et mål på strålingsintensitet (f.eks. optisk tetthet røntgenfilm, EPI,..), attenuasjonskoeffisient (CT), aktivitet (SPECT), magnetisk relaksasjon (MRI),... Pikselstørrelsen er et mål på den geometriske oppløsningen til enheten som genererte bildet. Fargetabeller Vanlige dataskjermer er kun i stand til samtidig vise 256 farger (eller grånivåer). En fargetabell angir hvordan pikselverdien skal vises på skjermen. En fargetabell består av 3 kolonner med tall vanligvis i området [,255] ( 8-bits farge. Kolonne : Intensiteten til den røde fargen. R Kolonne 2: Intensiteten på den grønne fargen. G Kolonne 3: Intensiteten på den blå fargen B En gitt pikselverdi oversettes til et radnummer i tabellen, dvs. en RGB triplett. Gråtoner oversettes til rader der R=G=B. Antall rader i tabellen gjenspeiler antall farger som det er fysisk mulig å realisere på skjermen. Fargetabeller Moderne datamaskiner har videokort som håndterer TrueColor TrueColor gjør det mulig å vise alle kombinasjoner av R, G, B, dvs. fargetabellen har 256*256*256=677727 rader. TrueColor kan visualiseres som 3 bilder (kanaler) som vises samtidig på skjermen, en R-, en G-, og B-kanal. Ved å gi alle 3 kanalene samme styrke (på en skala fra til 255) fås gråtoner. Radnummeret til en vilkårlig farge (RGB-triplett) i tabellen kan enkelt regnes ut fra formelen radnummer = R + 256*(G+256*B) Bildebehandling Demo av fargetabeller Demo sette rgb ved plotting Bildeforbedring Window/level Filtrering Glatting Median Frekvensfiltre (kant-skjerping) Histogram-utjevning Segmentering Terskling Tekstur / morfologi Statistisk differensiering 2
3/8/29 Hva er bildebehandling? En transformasjon der et nytt bilde genereres med utgangspunkt i et originalbilde: G(,y) = T (F(,y) ) Punkt operasjoner Et gitt grånivå [,] mappes til et annet grånivå y [,] iht til transformasjonen y y = f () T kan være lineær eller ikke lineær T kan være piksel/punkt-basert eller region-basert T kan være definert i rom/tid-domenet eller i frekvensdomenet =255: for gråskala bilder azy Man Operation Invertere bilde y y = y = Påvirker ikke den visuelle bildekvaliteten okal kontrast kan defineres som forskjellen i gråtone (intensitet) mellom to nabopiksler i bildet C = I-I2 Kontrast µ µ2 I I2 Bilde Klipping y = β ( a) β ( b a) < a a < b b < a b a = 5, b = 5, β = 2 3
3/8/29 Brukes for å forsterke/framheve den lokale kontrasten i bildet på skjermen. Window/level 256 Skjermverdi 256 Pikselverdi 2 Nivå Vindu Kontrast strekking α y = β ( a) + ya γ ( b) + yb < a a < b b < y b y a a b a = 5, b = 5, α =.2, β = 2, γ =, y a = 3, yb = 2 Kontrast kompresjon Punkt operasjoner: y = c log ( + ) Hvordan finne den optimale f() for et vilkårlig bilde? En systematisk tilnærmingsmåte er basert på en analyse av histogrammet over grånivåer i bildet. Histogram utjevning c= Histogram based Enhancement Histogram of an image represents the relative frequency of occurrence of various gray levels in the image 3 25 2 5 Histogram-utjevning Har til hensikt å øke den lokale kontrasten i bildet gjennom en jevnere fordeling av pikselverdier Forskjellen i intensitet mellom nabopiksler økes der denne i utgangspunktet er liten. senkes den den i utgangspunktet er stor. 5 5 5 2 FØR ETTER 4
3/8/29 Why Histogram? 4 Another Eample 4 3.5 3 7 6 2.5 2.5 5 4 3 It is a baby in the cradle!.5 5 5 2 25 2 5 5 2 25 Histogram information reveals that image is under-eposed Over-eposed image How to Adjust the Image? Histogram equalization Basic idea: find a map f() such that the histogram of the modified (equalized) image is flat (uniform). Key motivation: cumulative probability function (cdf) of a random variable approimates a uniform distribution Histogram Equalization y y = s = t= t= h( t) h( t) Uniform Quantization Note: t = h( t) = cumulative probability function Suppose h(t) is the histogram s( ) = t= h( t) Image Eample Histogram Comparison 3 3 25 25 2 2 5 5 5 5 5 5 2 5 5 2 25 3 before after before equalization after equalization 5
3/8/29 Application (I): Digital Photography Application (II): Iris Recognition before after Application (III): Microarray Techniques Demo CAHE på pi before after Frekvens-filtrering Høypass Brukes f.eks. til å forsterke kanter (dvs. øke skarpheten i bildet) Hva er støy? Støy Hvordan kvitte seg med støy? Demo: ena med [-,9,-] Demo: aplace kant-forsterkning 6
3/8/29 Typisk støy I: Salt og pepper eller impuls støy Typisk støy II: Hvit (gaussisk) støy Typisk støy III: Interferens Typisk støy IV: Inhomogen belysning Metoder for å fjerne støy Diskret konvolusjon D Glatting Median Gaussisk glatting Frekvensfiltrering...gjøres ved å anvende diskrete konvolusjoner (konvolusjonskjerner) 7
3/8/29 Diskret konvolusjon 2D DEMO i D Glatting a b c d p e f g h p = (a+b+c+d+e+f+g+h)/9 Eks: 33 konvolusjons kjerne Median 3 6 7 8 9 5 Sortert i stigende orden: 3 6 7 8 9 5 Pikselverdien byttes ut med 8 i det filtrerte bildet Median filtrering fjerner effektivt salt og pepper støy samt er kant bevarende. Gaussisk glatting Frekvensfiltere avpass Brukes f.eks. til å glatte over / fjerne støy Båndpass Brukes f.eks. for fjerning av interferens Høypass Brukes f.eks. til å forsterke kanter (dvs. øke skarpheten i bildet) 8
3/8/29 Fourier transformen Rom-domenet vs. frekvens-doménet Det er mulig å tilnærme enhver funksjon f() som summen av to rekker av sinus og cosinus ledd med økende frekvens. En variasjon av data i tid-rommet (her: variasjoner i f.eks. lysstyrke/kontrast/farge), kan like gjerne utrykkes i frekvens-rommet. itt (kontinuerlig) matte Husk Eulers formel: Fourier-trasnformen av f() + + Den inverse Fourier-transformen: θ e i = cosθ + i sinθ i2πu F( = f ( ) e d = f ( )(cos 2πu i sin 2π d + f ( ) = F( e i2πu du Produktet av et imaginært tall og reelt tall er et imaginært tall, dvs. F( har både en real del og en imaginær del, dvs. F ( = R( + ii( = r(sinθ + icosθ ) = re F( = F( e iθ( F( kalles gjerne fourier spekteret til f(), og θ( fase vinkelen. iθ F( = N itt (diskret) matte N = N ( ) = f N u= f ( ) e i F( e i2πu / N 2πu / N Ku =,,2,..., N K =,,2,..., N En nyttig observasjon Den Fourier-transformerte til en konvolusjon, er produktet av fouriertransformene F(g*h) = G( H(U) - og dette kan utnyttes i (frekvens)filtrering innen bildebehandling/signalprosessering. 9
3/8/29 Terskling Segmentering Terskling har til hensikt å klassifisere pikselverdier som tilhørende i to grupper (binær terskling) eller flere grupper (mange nivå terskling). Terskling kan utføres Globalt okalt. Terskling Bruk: Skape binære bilder bilder som kan være et utgangspunkt for å lage masker Identifisere ROI Identifisere grenser / kanter Forsterke lokal kontrast Tekstur-basert segmentering Region growing (demo i ID) Finner alle piksler som slekter på hverandre i et naboskap (med frø-punkt som startsted) Watershed identifiserer grensen mellom regioner (demo I ID)