109
Obdelava digitalnih slik

Obdelava digitalnih slik - studentski.net

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Obdelava digitalnih slik - studentski.net

Obdelava digitalnih slik

Page 2: Obdelava digitalnih slik - studentski.net

Metode obdelave digitalnih slik

Thomas A. Funkhouser, Princeton Graphics Group

Page 3: Obdelava digitalnih slik - studentski.net
Page 4: Obdelava digitalnih slik - studentski.net
Page 5: Obdelava digitalnih slik - studentski.net

Preprosto spreminjanje pikslov

Page 6: Obdelava digitalnih slik - studentski.net

Primer

Page 7: Obdelava digitalnih slik - studentski.net

Preprosto spreminjanje pikslov

Homogeneous Point Processing-- An image processing that maps an input image to an output image without performing geometric changes.

Theory-- If an image is represented by an array of pixels,each with a color value, one can manipulate the color values to change the image.

Examples--• washing out an image, • brightening an image, • adjusting an image’s contrast

Page 8: Obdelava digitalnih slik - studentski.net

Negativi slik

Formula: f (vij) = 255 - vij

A negative image may be created by taking a color,and finding its opposite. If 8 bits represent a given red, blue, or green value, the inverse would be 255 minus that color value.

Princip:

Page 9: Obdelava digitalnih slik - studentski.net

Popravljanje svetlosti (Brightness)

The brightness of each pixel may be adjusted by a similar use of the byte range:

f ( vij ) = 255 (vij /255)pow

With pow > 1, the image darkens

Princip:

Page 10: Obdelava digitalnih slik - studentski.net

Popravljanje kontrasta

Likewise, we can build a linear transform to alter contrast

vij = cvij + b,

wherec = delta D / delta V,b = (Dmin*Vmax - Dmax*Vmin)/ deltaV

givenV = value in imageD = value that can be displayed

(This is also called linear gray level scaling)

Page 11: Obdelava digitalnih slik - studentski.net

Koda v Javi: naložimo sliko (in njene piksle)

public void loadImage(String strFile) { ImageIcon i = new ImageIcon(strFile); image = i.getImage(); width = image.getWidth(this); height = image.getHeight(this); }

public void getData() { pixels = new int[width * height]; PixelGrabber pg = new PixelGrabber (image, 0, 0, width, height, pixels, 0, width); try { pg.grabPixels(); } catch (InterruptedException e){ System.err.println("interrupted waiting for pixels!"); return; } if ((pg.getStatus() & ImageObserver.ABORT) != 0){ System.err.println("image fetch aborted or errored"); return; } }

How doesPixelGrabber work? Check

your API

Page 12: Obdelava digitalnih slik - studentski.net

Obdelava pikslov

public int inversePixel(int x, int y, int pixel) { int alpha = (pixel >> 24) & 0xff; int red = (pixel >> 16) & 0xff; int green = (pixel >> 8) & 0xff; int blue = (pixel ) & 0xff; red = Math.abs(255-red); green = Math.abs(255-green); blue = Math.abs(255-blue); return (alpha << 24) | (red << 16) | (green << 8) | blue; }

public int brightenPixel(int x, int y, int pixel, double p){ int alpha = (pixel >> 24) & 0xff; int red = (pixel >> 16) & 0xff; int green = (pixel >> 8) & 0xff; int blue = (pixel ) & 0xff; red = (int)(255 * Math.pow(red/255.0, p)); green = (int)(255 * Math.pow(green/255.0, p)); blue = (int)(255 * Math.pow(blue/255.0, p)); return (alpha << 24) | (red << 16) | (green << 8) | blue; }

Page 13: Obdelava digitalnih slik - studentski.net

Prag (treshold)

Page 14: Obdelava digitalnih slik - studentski.net
Page 15: Obdelava digitalnih slik - studentski.net

Interpolacija - ekstrapolacija

Page 16: Obdelava digitalnih slik - studentski.net
Page 17: Obdelava digitalnih slik - studentski.net

Kompozicija

Page 18: Obdelava digitalnih slik - studentski.net

Kompozicija

Page 19: Obdelava digitalnih slik - studentski.net
Page 20: Obdelava digitalnih slik - studentski.net

Filter Properties• Filters are characterised by:

– frequency response (e.g. high-pass, low-pass, band-pass, notch…)

– support = region over which filter is non-zero. If non-zero over a finite domain, filter is said to have finite support.

– order: most filters are linear (i.e. do not depend on the signal being filtered)

– variance: a filter which does not alter with position is known as shift-invariant otherwise spatially variant.

• The frequency representation of a filter determines its frequency response.

• The spatial representation is used to characterise its support.

Filtri

Page 21: Obdelava digitalnih slik - studentski.net

Jedra filtrov (Filter Kernels)

• The ideal filter is a box function in the frequency domain.

• In the spatial domain, this becomes the sinc filter kernel which has non-finite support.

( )xf( )uFcu

( )

>≤

=c

c

uu

uuuF

0

1

( ) ( ) ( )x

xxxf

ππ== sin

sinc

Page 22: Obdelava digitalnih slik - studentski.net

Filtri

• Kernels with larger support can have better frequency response properties (more effective filters).⇒ more memory required per filter = (2s+1)2 for discrete 2D filter

⇒ convolution is more expensive = n(2s+1)2

• Filter gain is usually assumed to be 1, i.e. unity gain ⇒ filter is normalised:

• If gain > 1, the filtered signal will be scaled by the gain– images will get brighter or darker

• We can compensate by dividing by the gain (= scale):

[ ]∑−=

=s

st

tgg

( ) [ ] [ ] [ ] [ ]∑∑−=−=

−=−=∗=s

st

s

st

txftggain

txfgain

tggfxh

1

Page 23: Obdelava digitalnih slik - studentski.net

Konvolucija

• Multiplying the frequency representation of an image by a filter may be expressed in the spatial domain as convolution.

• If the image is f(x) and the filter (in the spatial domain) is g(x) then convolution is defined by:

• Normally we are concerned with discrete convolution:

• In this case, the filter g(x) is assumed to have finite discrete support [-s,s]

( ) ( ) ( )( ) ( )( ) ( ) ( )dttxftgxgxfxgxf −==∗ ∫∞

∞−FF

[ ] [ ]∑−=

−=∗s

st

txftggf

Page 24: Obdelava digitalnih slik - studentski.net

Diskretna konvolucija

[ ] [ ]∑−=

−=∗s

st

txftggain

gf1

Page 25: Obdelava digitalnih slik - studentski.net

Diskretna 2D konvolucija

[ ] [ ]∑ ∑−= −=

−−=∗s

sv

s

su

vyuxfvuggain

gf ,,1

Page 26: Obdelava digitalnih slik - studentski.net

Konvolucija

Page 27: Obdelava digitalnih slik - studentski.net

Splošna oblika jedra

n.... liho število

Page 28: Obdelava digitalnih slik - studentski.net

Kaj narediti na robovih?

Page 29: Obdelava digitalnih slik - studentski.net

Nizkopasovni filtri

=

111

111

111

9

13)(order Box

=

11111

11111

11111

11111

11111

25

15)(order Box

Page 30: Obdelava digitalnih slik - studentski.net

Nizkopasovni filtri

=

14321

24642

36963

24642

12321

81

1(Bartlett) Triangle

=

14641

41624164

62436246

41624164

14641

256

1Gaussian

Page 31: Obdelava digitalnih slik - studentski.net

Visokopasovni filtri

=

−=

000

010

000

121

242

121

16

1

121

2122

121

16

1Highpass

−=

111

181

111

1

1Laplacian

Page 32: Obdelava digitalnih slik - studentski.net

Drugi filtri

−−−+=

011

101

110

2

1Emboss

( )LPgfff ∗−+=unsharp

Page 33: Obdelava digitalnih slik - studentski.net

Odkrivanje robov

Jedro za odkrivanje robov

Page 34: Obdelava digitalnih slik - studentski.net

Zameglitev (blur)

Page 35: Obdelava digitalnih slik - studentski.net
Page 36: Obdelava digitalnih slik - studentski.net
Page 37: Obdelava digitalnih slik - studentski.net
Page 38: Obdelava digitalnih slik - studentski.net
Page 39: Obdelava digitalnih slik - studentski.net
Page 40: Obdelava digitalnih slik - studentski.net
Page 41: Obdelava digitalnih slik - studentski.net
Page 42: Obdelava digitalnih slik - studentski.net
Page 43: Obdelava digitalnih slik - studentski.net
Page 44: Obdelava digitalnih slik - studentski.net
Page 45: Obdelava digitalnih slik - studentski.net
Page 46: Obdelava digitalnih slik - studentski.net
Page 47: Obdelava digitalnih slik - studentski.net
Page 48: Obdelava digitalnih slik - studentski.net

Box, triangle, Gaussian blurr

Page 49: Obdelava digitalnih slik - studentski.net

Obdelava slik in java2D

Page 50: Obdelava digitalnih slik - studentski.net

Razprševanje

Page 51: Obdelava digitalnih slik - studentski.net

Razprševanje in poltoni (dithering, halftoning)

Trade spatial for intensity resolution

• Thresholding.

• Random dither; Robert’s algorithm

• Ordered dither

• Error diffusion

Your eye will average over an area - Spatial Integration

Page 52: Obdelava digitalnih slik - studentski.net

Prag (Thresholding)

Original image. Simple threshold.n = 0.5 n= 0.7

)),((),( nyxvtruncyxv += Errors are low spatial frequencies.

Page 53: Obdelava digitalnih slik - studentski.net

Robertov algoritem

• First add noise

• Then quantize

x

i

0

1

r

r + 1Quantised to 1

Quantised to 0

)),(),((),( yxnoiseyxvKtruncyxv +×=

10 <≤ noise

Moves errors to higher spatial frequencies.-> eye averages over an area.

Page 54: Obdelava digitalnih slik - studentski.net

Spektri šumov

Pink Noise

Blue Noise

White Noise

f

f

f

Page 55: Obdelava digitalnih slik - studentski.net

Robertov algoritem

Moves low frequency (average error) to high frequency

Pink(low), Blue (high), White(all) frequency noise

Pink Blue

Page 56: Obdelava digitalnih slik - studentski.net

Problemi s šumom

• Difficult to compute quickly.

• Not reproducible.

• Pre-compute pseudo-random function and store in table.

• Small tiled patterns sufficient

Page 57: Obdelava digitalnih slik - studentski.net

Urejeno razprševanje (Ordered Dithering)

• Trade off spatial resolution for intensity resolution.

• Use dither patterns.• Can be represented

as a matrix.

Page 58: Obdelava digitalnih slik - studentski.net

Bayerjevi vzorci urejenega razprševanja

Page 59: Obdelava digitalnih slik - studentski.net

Druge možnosti

Page 60: Obdelava digitalnih slik - studentski.net

Primerjava

Page 61: Obdelava digitalnih slik - studentski.net

Širjenje napake

Idea: Quantize, then distribute error to neighbours

for(y=0; y<ny; y++) for(x=0; x<nx; x++){ vq[x][y] = quantize(v[x][y]); e = v[x][y] - vq[x][y]; i[x+1][y] += 3/8*e; i[x][y+1] += 3/8*e; i[x+1][y+1] += 1/4*e;}

e -3e/8

-3e/8 -e/4

Page 62: Obdelava digitalnih slik - studentski.net

Primerjava

Page 63: Obdelava digitalnih slik - studentski.net

Vzorčenje in aliasing

• Real world is continuous• The computer world is discrete• Mapping a continuous function to a discrete one

is called sampling• Mapping a continuous variable to a discrete one

is called quantizaion• To represent or render an image using a

computer, we must both sample and quantize

Page 64: Obdelava digitalnih slik - studentski.net

Prikazovalniki→ rekonstrukcija signala

• All physical displays recreate a continuous image from a discrete sampled image by using a finite sized source of light for each pixel.

Reconstruction

Discrete input values. Continuous Light Output.

Page 65: Obdelava digitalnih slik - studentski.net

Spomnimo se: piksel je točka…

• It is NOT a box, disc or teeny wee light

• It has no dimension

• It occupies no area

• It can have a coordinate

• More than a point, it is a SAMPLE

Page 66: Obdelava digitalnih slik - studentski.net

Vzorčenje v video kamerah

• Video camera : CCD array.

Regular array of imagingsensors.

y

x

∫∫=yx

IdxdykV,

Value sensed is an area integral over a pixel.

Intensity, I

Page 67: Obdelava digitalnih slik - studentski.net

Vzorčenje v očesu

• The eye : photoreceptors

J. Liang, D. R. Williams and D. Miller, "Supernormal visionand high- resolution retinal imaging through adaptive optics,"J. Opt. Soc. Am. A 14, 2884- 2892 (1997)

Film is similar : irregular array of receptors.

Page 68: Obdelava digitalnih slik - studentski.net

Ali je pri računalniški grafiki drugače ?

Model of Scene.

Frame Buffer

Query values of pixels

- points- lines- 3D objects- lighting etc

Point Sampling.

Page 69: Obdelava digitalnih slik - studentski.net

Slide © Rosalee Nerheim-Wolfe

Zvezen svetlostni signal

Page 70: Obdelava digitalnih slik - studentski.net

Slide © Rosalee Nerheim-Wolfe

Vzorčena svetlost

Page 71: Obdelava digitalnih slik - studentski.net

Slide © Rosalee Nerheim-Wolfe

Rekonstruirana svetlost

Page 72: Obdelava digitalnih slik - studentski.net

Slide © Rosalee Nerheim-Wolfe

Rezultat rekonstrukcije

Page 73: Obdelava digitalnih slik - studentski.net

The raster aliasing effect – removal is called antialiasing

Images by Don Mitchell

Nazobčanost

Page 74: Obdelava digitalnih slik - studentski.net

Slide © Rosalee Nerheim-Wolfe

Je lahko resen problem…

Page 75: Obdelava digitalnih slik - studentski.net

Slide © Rosalee Nerheim-Wolfe

…zelo resen problem!

Page 76: Obdelava digitalnih slik - studentski.net

Podvzorčenje v 1D prostoru

• Sampling a 1-D function:

Page 77: Obdelava digitalnih slik - studentski.net

• Sampling a 1-D function:Podvzorčenje pripelje do “aliasing”

Podvzorčenje v 1D prostoru

Page 78: Obdelava digitalnih slik - studentski.net

• Sampling a 1-D function:– What do you notice?

Podvzorčenje v 1D prostoru

Page 79: Obdelava digitalnih slik - studentski.net

• Sampling a 1-D function: what do you notice?– Jagged, not smooth

Podvzorčenje v 1D prostoru

Page 80: Obdelava digitalnih slik - studentski.net

• Sampling a 1-D function: what do you notice?– Jagged, not smooth– Loses information!

Podvzorčenje v 1D prostoru

Page 81: Obdelava digitalnih slik - studentski.net
Page 82: Obdelava digitalnih slik - studentski.net
Page 83: Obdelava digitalnih slik - studentski.net
Page 84: Obdelava digitalnih slik - studentski.net
Page 85: Obdelava digitalnih slik - studentski.net
Page 86: Obdelava digitalnih slik - studentski.net

Zameglitev (blurring) ni dobra

Removed the jaggies, but also all the detail ! → Reduction in resolution

Page 87: Obdelava digitalnih slik - studentski.net

nadvzorčenje (supersampling) ?

• solution : take multiple samples for each pixel and average them together → supersampling.

• Can weight them towards the centre → weighted average sampling

• Stochastic sampling

Page 88: Obdelava digitalnih slik - studentski.net
Page 89: Obdelava digitalnih slik - studentski.net
Page 90: Obdelava digitalnih slik - studentski.net
Page 91: Obdelava digitalnih slik - studentski.net
Page 92: Obdelava digitalnih slik - studentski.net
Page 93: Obdelava digitalnih slik - studentski.net
Page 94: Obdelava digitalnih slik - studentski.net

Vzorčenje prostora je drago

• Computationally expensive.• Difficult to do analytically in a 3D environment

– Single sample is a ray in 3D - easy computation of intersections.

• Area sample becomes a cone !– Reflections difficult.

• Is it an optimum solution ?

Page 95: Obdelava digitalnih slik - studentski.net

Antialiasing with Area Sampling

• A scan converted primitive occupies finite area on the screen

• Intensity of the boundary pixels is adjusted depending on the percent of the pixel area covered by the primitive. This is called weighted area sampling

• Intensities can be weighted depending on the distance of the

area from the center of the pixel

Page 96: Obdelava digitalnih slik - studentski.net

Antialiasing with Area Sampling

• Methods to estimate percent of pixel covered by the pixel– subdivide pixel into sub-pixels and determine how many sub-

pixels are inside the boundary

– Incremental line algorithm can be extended, with area calculated as

Efficient only when one edge of the area passes through the pixel

Area m x y c= ⋅ − + + 0 5.y+0.5

y-0.5

x+0.5x-0.5 x

y

filled area

Page 97: Obdelava digitalnih slik - studentski.net

Kako še naredimo antialiasing?

• We need some mathematical tools to– analyse the situation.– find an optimum solution.

• Tools we will use :– Fourier transform.– Convolution theory.– Sampling theory.

Page 98: Obdelava digitalnih slik - studentski.net

Nekaj matematike – spektralna analiza

• Spectral representation treats the function as a weighted sum of sines and cosines

• Every function has two representations– Spatial (time) domain - normal representation

– Frequency domain - spectral representation

• The ✦❏◆❒❉❅❒ ▼❒❁■▲❆❏❒❍ converts between the spatial and frequency domains.

Page 99: Obdelava digitalnih slik - studentski.net

Nekaj matematike – spektralna analiza

• The ✦❏◆❒❉❅❒ ▼❒❁■▲❆❏❒❍ converts between the spatial and frequency domain.

• Note the Euler formula :• Real and imaginary components.• Forward and reverse transforms very similar.

– Reversal in sign of imaginary component, scale constant.

Spatial domainFrequency domain.

∫∞

∞−

−= dxexfF xiωω )()(

∫∞

∞−Π= ωω ω deFxf xi)(

2

1)(

titeit sincos +=

Page 100: Obdelava digitalnih slik - studentski.net

Some important properties of Fourier transforms.

• Finite function ⇔ Infinite function.– eg. single sine wave ⇔ single point or ‘delta’

function.

• Square or boxcar function - corresponds to 1 pixel.

Function called :Square(x)

+1/2-1/2

1

Page 101: Obdelava digitalnih slik - studentski.net

Filtering in the frequency domain

ImageFrequency

domainFilter Image

Fourier Transform

Fourier Transform

Lowpass filter

Highpass filter

Page 102: Obdelava digitalnih slik - studentski.net

Filtriranje

• Low pass

• High pass

Page 103: Obdelava digitalnih slik - studentski.net

Filtriranje v časovnem prostoru

• Blurring or averaging pixels together.

Calculate integral of one function, f(x) by a sliding second function g(x-y).

Known as Convolution.

∫ −=⊗= dyyxgxfgfxh )()()(

g(y)

Incrementx

h(x)

Integrate over y

f(x)

Page 104: Obdelava digitalnih slik - studentski.net

Kako odstraniti aliasing ?

• Perfect solution - prefilter with perfect bandpass filter.

Perfect bandpass

No aliasing.

Aliased example

Page 105: Obdelava digitalnih slik - studentski.net

Do aliasing pripelje podvzorčenje

Spurious components : Cause of aliasing.

Samples are too closetogether in f.

Page 106: Obdelava digitalnih slik - studentski.net

Kako predstavimo vzorčenje ?

• Multiplication of the sample with a regular train of delta functions.

Page 107: Obdelava digitalnih slik - studentski.net

Vzorčenje – frekvenčni prostor

Need Fourier transform of regular train of delta functions.- A regular train of delta functions - spacing is inversely proportional

So convolve with this function.

Multiple solutions at regularly increasing values of f

Page 108: Obdelava digitalnih slik - studentski.net

Rekonstrukcija v frekvenčnem prostoru

Bandpass filter due to regular array of pixels.

Original signal.

Page 109: Obdelava digitalnih slik - studentski.net

Kako odstranimo aliasing ?

• Perfect solution - prefilter with perfect bandpass filter.– Difficult/Impossible to do in frequency domain

• Convolve with sinc function in space domain– Optimal filter - better than area sampling.– Sinc function is infinite !!– Computationally expensive.