CIS 601 Image ENHANCEMENT in the SPATIAL DOMAIN

  • Slides: 74
Download presentation
CIS 601 Image ENHANCEMENT in the SPATIAL DOMAIN Dr. Rolf Lakaemper

CIS 601 Image ENHANCEMENT in the SPATIAL DOMAIN Dr. Rolf Lakaemper

Most of these slides base on the book Digital Image Processing by Gonzales/Woods Chapter

Most of these slides base on the book Digital Image Processing by Gonzales/Woods Chapter 3

Introduction Image Enhancement ? • • • enhance otherwise hidden information Filter important image

Introduction Image Enhancement ? • • • enhance otherwise hidden information Filter important image features Discard unimportant image features Spatial Domain ? • • Refers to the image plane (the ‘natural’ image) Direct image manipulation

Remember ? A 2 D grayvalue - image is a 2 D -> 1

Remember ? A 2 D grayvalue - image is a 2 D -> 1 D function, v = f(x, y)

Remember ? As we have a function, we can apply operators to this function,

Remember ? As we have a function, we can apply operators to this function, e. g. T(f(x, y)) = f(x, y) / 2 Operator Image (= function !)

Remember ? T transforms the given image f(x, y) into another image g(x, y)

Remember ? T transforms the given image f(x, y) into another image g(x, y) f(x, y) g(x, y)

Spatial Domain The operator T can be defined over • • • The set

Spatial Domain The operator T can be defined over • • • The set of pixels (x, y) of the image The set of ‘neighborhoods’ N(x, y) of each pixel A set of images f 1, f 2, f 3, …

Spatial Domain Operation on the set of image-pixels 6 8 2 0 3 12

Spatial Domain Operation on the set of image-pixels 6 8 2 0 3 12 200 20 10 6 (Operator: Div. by 2) 4 1 0 10 5

Spatial Domain Operation on the set of ‘neighborhoods’ N(x, y) of each pixel 6

Spatial Domain Operation on the set of ‘neighborhoods’ N(x, y) of each pixel 6 8 (Operator: sum) 12 200 6 8 2 0 12 200 20 10 226

Spatial Domain Operation on a set of images f 1, f 2, … 6

Spatial Domain Operation on a set of images f 1, f 2, … 6 8 2 0 12 200 20 10 (Operator: sum) 5 5 1 0 2 20 3 4 11 13 3 0 14 220 23 14

Spatial Domain Operation on the set of image-pixels Remark: these operations can also be

Spatial Domain Operation on the set of image-pixels Remark: these operations can also be seen as operations on the neighborhood of a pixel (x, y), by defining the neighborhood as the pixel itself. • • • The simplest case of operators g(x, y) = T(f(x, y)) depends only on the value of f at (x, y) T is called a gray-level or intensity transformation function

Transformations Basic Gray Level Transformations • • Image Negatives Log Transformations Power Law Transformations

Transformations Basic Gray Level Transformations • • Image Negatives Log Transformations Power Law Transformations Piecewise-Linear Transformation Functions For the following slides L denotes the max. possible gray value of the image, i. e. f(x, y) [0, L]

Transformations Image Negatives: T(f)= L-f Output gray level T(f)=L-f Input gray level

Transformations Image Negatives: T(f)= L-f Output gray level T(f)=L-f Input gray level

Transformations Log Transformations: T(f) = c * log (1+ f)

Transformations Log Transformations: T(f) = c * log (1+ f)

Transformations Log Transformations Inv. Log

Transformations Log Transformations Inv. Log

Transformations Log Transformations

Transformations Log Transformations

Transformations Power Law Transformations T(f) = c*f

Transformations Power Law Transformations T(f) = c*f

Transformations • • • varying gamma ( ) obtains family of possible transformation curves

Transformations • • • varying gamma ( ) obtains family of possible transformation curves >0 • Compresses dark values • Expands bright values <0 • Expands dark values • Compresses bright values

Transformations • Used for gamma-correction

Transformations • Used for gamma-correction

Transformations • Used for general purpose contrast manipulation

Transformations • Used for general purpose contrast manipulation

Transformations Piecewise Linear Transformations

Transformations Piecewise Linear Transformations

Piecewise Linear Transformations Thresholding Function L if f(x, y) > t, 0 else t

Piecewise Linear Transformations Thresholding Function L if f(x, y) > t, 0 else t = ‘threshold level’ Output gray level g(x, y) = Input gray level

Piecewise Linear Transformations Gray Level Slicing Purpose: Highlight a specific range of grayvalues Two

Piecewise Linear Transformations Gray Level Slicing Purpose: Highlight a specific range of grayvalues Two approaches: 1. Display high value for range of interest, low value else (‘discard background’) 2. Display high value for range of interest, original value else (‘preserve background’)

Piecewise Linear Transformations Gray Level Slicing

Piecewise Linear Transformations Gray Level Slicing

Piecewise Linear Transformations Bitplane Slicing Extracts the information of a single bitplane

Piecewise Linear Transformations Bitplane Slicing Extracts the information of a single bitplane

Piecewise Linear Transformations BP 0 BP 5 BP 7

Piecewise Linear Transformations BP 0 BP 5 BP 7

Piecewise Linear Transformations Exercise: • How does the transformation function look for bitplanes 0,

Piecewise Linear Transformations Exercise: • How does the transformation function look for bitplanes 0, 1, … ? • What is the easiest way to filter a single bitplane (e. g. in MATLAB) ?

Histograms Histogram Processing 4 5 0 3 1 5 1 Number of Pixels 1

Histograms Histogram Processing 4 5 0 3 1 5 1 Number of Pixels 1 gray level

Histograms Histogram Equalization: • • Preprocessing technique to enhance contrast in ‘natural’ images Target:

Histograms Histogram Equalization: • • Preprocessing technique to enhance contrast in ‘natural’ images Target: find gray level transformation function T to transform image f such that the histogram of T(f) is ‘equalized’

Histogram Equalization Equalized Histogram: The image consists of an equal number of pixels for

Histogram Equalization Equalized Histogram: The image consists of an equal number of pixels for every grayvalue, the histogram is constant !

Histogram Equalization Example: T We are looking for this transformation !

Histogram Equalization Example: T We are looking for this transformation !

Histogram Equalization Target: Find a transformation T to transform the grayvalues g 1 [0.

Histogram Equalization Target: Find a transformation T to transform the grayvalues g 1 [0. . 1] of an image I to grayvalues g 2 = T(g 1) such that the histogram is equalized, i. e. there’s an equal amount of pixels for each grayvalue. Observation (continous model !): Assumption: Total image area = 1 (normalized). Then: The area(!) of pixels of the transformed image in the gray-value range 0. . g 2 equals the gray-value g 2.

Histogram Equalization The area(!) of pixels of the transformed image in the grayvalue range

Histogram Equalization The area(!) of pixels of the transformed image in the grayvalue range 0. . g 2 equals the gray-value g 2. Þ Every g 1 is transformed to a grayvalue that equals the area (discrete: number of pixels) in the image covered by pixels having gray-values from 0 to g 1. Þ The transformation T function t is the areaintegral: T: g 2 = 0. . g 1 I da

Histogram Equalization Discrete: g 1 is mapped to the (normalized) number of pixels having

Histogram Equalization Discrete: g 1 is mapped to the (normalized) number of pixels having grayvalues 0. . g 1.

Histogram Equalization Mathematically the transformation is deducted by theorems in continous (not discrete) spaces.

Histogram Equalization Mathematically the transformation is deducted by theorems in continous (not discrete) spaces. The results achieved do NOT hold for discrete spaces ! (Why ? ) However, it’s visually close.

Histogram Equalization Conclusion: • • The transformation function that yields an image having an

Histogram Equalization Conclusion: • • The transformation function that yields an image having an equalized histogram is the integral of the histogram of the source-image The discrete integral is given by the cumulative sum, MATLAB function: cumsum() The function transforms an image into an image, NOT a histogram into a histogram ! The histogram is just a control tool ! In general the transformation does not create an image with an equalized histogram in the discrete case !

Operations on a set of images Operation on a set of images f 1,

Operations on a set of images Operation on a set of images f 1, f 2, … 6 8 2 0 12 200 20 10 (Operator: sum) 5 5 1 0 2 20 3 4 11 13 3 0 14 220 23 14

Operations on a set of images Logic (Bitwise) Operations AND OR NOT

Operations on a set of images Logic (Bitwise) Operations AND OR NOT

Operations on a set of images The operators AND, OR, NOT are functionally complete:

Operations on a set of images The operators AND, OR, NOT are functionally complete: Any logic operator can be implemented using only these 3 operators

Operations on a set of images Any logic operator can be implemented using only

Operations on a set of images Any logic operator can be implemented using only these 3 operators: A B Op 0 0 1 1 1 0 0 1 1 0 Op= NOT(A) AND NOT(B) OR NOT(A) AND B

Operations on a set of images Image 1 AND Image 2 1 2 3

Operations on a set of images Image 1 AND Image 2 1 2 3 9 7 3 6 4 (Operator: AND) 1 1 2 2 1 0 1 1 2 2 2 0

Operations on a set of images Image 1 AND Image 2: Used for Bitplane-Slicing

Operations on a set of images Image 1 AND Image 2: Used for Bitplane-Slicing and Masking

Operations on a set of images Exercise: Define the mask-image, that transforms image 1

Operations on a set of images Exercise: Define the mask-image, that transforms image 1 into image 2 using the OR operand 1 2 3 9 7 3 6 4 (Operator: OR) 255 2 7 255 3 7 255

Operations Arithmetic Operations on a set of images 1 2 3 9 7 3

Operations Arithmetic Operations on a set of images 1 2 3 9 7 3 6 4 (Operator: +) 1 1 2 2 2 3 4 10 9 5 8 6

Operations Exercise: What could the operators + and – be used for ?

Operations Exercise: What could the operators + and – be used for ?

Operations (MATLAB) Example: Operator – Foreground-Extraction

Operations (MATLAB) Example: Operator – Foreground-Extraction

Operations (MATLAB) Example: Operator + Image Averaging

Operations (MATLAB) Example: Operator + Image Averaging

CIS 601 Image ENHANCEMENT in the SPATIAL DOMAIN Part 2

CIS 601 Image ENHANCEMENT in the SPATIAL DOMAIN Part 2

Histograms So far (part 1) : • • Histogram definition Histogram equalization Now: •

Histograms So far (part 1) : • • Histogram definition Histogram equalization Now: • Histogram statistics

Histograms number of pixels Remember: The histogram shows the number of pixels having a

Histograms number of pixels Remember: The histogram shows the number of pixels having a certain gray-value grayvalue (0. . 1)

Histograms The NORMALIZED histogram is the histogram divided by the total number of pixels

Histograms The NORMALIZED histogram is the histogram divided by the total number of pixels in the source image. The sum of all values in the normalized histogram is 1. The value given by the normalized histogram for a certain gray value can be read as the probability of randomly picking a pixel having that gray value

Histograms What can the (normalized) histogram tell about the image ?

Histograms What can the (normalized) histogram tell about the image ?

Histograms 1. The MEAN VALUE (or average gray level) 2. M = g h(g)

Histograms 1. The MEAN VALUE (or average gray level) 2. M = g h(g) g 1*0. 3+2*0. 1+3*0. 2+4*0. 1+5*0. 2+6*0. 1= 2. 6 0. 3 0. 2 0. 1 0. 0 1 2 3 4 5 6

Histograms The MEAN value is the average gray value of the image, the ‘overall

Histograms The MEAN value is the average gray value of the image, the ‘overall brightness appearance’.

Histograms 2. The VARIANCE V = (g-M)2 h(g) g (with M = mean) or

Histograms 2. The VARIANCE V = (g-M)2 h(g) g (with M = mean) or similar: The STANDARD DEVIATION D = sqrt(V)

Histograms VARIANCE gives a measure about the distribution of the histogram values around the

Histograms VARIANCE gives a measure about the distribution of the histogram values around the mean. 0. 3 0. 2 0. 1 0. 0 V 1 0. 3 0. 2 0. 1 0. 0 > V 2

Histograms The STANDARD DEVIATION is a value on the gray level axis, showing the

Histograms The STANDARD DEVIATION is a value on the gray level axis, showing the average distance of all pixels to the mean 0. 3 0. 2 0. 1 0. 0 D 1 > D 2

Histograms VARIANCE and STANDARD DEVIATION of the histogram tell us about the average contrast

Histograms VARIANCE and STANDARD DEVIATION of the histogram tell us about the average contrast of the image ! The higher the VARIANCE (=the higher the STANDARD DEVIATION), the higher the image’s contrast !

Histograms Example: Image and blurred version

Histograms Example: Image and blurred version

Histograms with MEAN and STANDARD DEVIATION M=0. 73 D=0. 32 M=0. 71 D=0. 27

Histograms with MEAN and STANDARD DEVIATION M=0. 73 D=0. 32 M=0. 71 D=0. 27

Histograms Exercise: Design an autofocus system for a digital camera ! The system should

Histograms Exercise: Design an autofocus system for a digital camera ! The system should analyse an area in the middle of the picture and automatically adjust the lens such that this area is sharp.

Histograms In between the basics… …histograms can give us a first hint how to

Histograms In between the basics… …histograms can give us a first hint how to create image databases:

Feature Based Coding • Determine a feature-vector for a given image • Compare images

Feature Based Coding • Determine a feature-vector for a given image • Compare images by their feature-vectors Two operations need to be defined: a mapping of shape into the feature space and a similarity of feature vectors. Representation Feature Extraction Where are the histograms ? Vector Comparison

Feature Based Coding • Determine a feature-vector for a given image • Compare images

Feature Based Coding • Determine a feature-vector for a given image • Compare images by their feature-vectors Two operations need to be defined: a mapping of shape into the feature space and a similarity of feature vectors. Representation HISTOGRAM Histogram Comp. HERE ! Question: how can we compare histograms (vectors) ?

Vector Comparison ,

Vector Comparison ,

Vector Comparison

Vector Comparison

Vector Comparison

Vector Comparison

Vector Comparison What’s the meaning of the Cosine Distance with respect to histograms ?

Vector Comparison What’s the meaning of the Cosine Distance with respect to histograms ? i. e. : what’s the consequence of eliminating the vector’s length information ?

Vector Comparison More Vector Distances: • Quadratic Form Distance • Earth Movers Distance •

Vector Comparison More Vector Distances: • Quadratic Form Distance • Earth Movers Distance • Proportional Transportation Distance • …

Vector Comparison Histogram Intersection (non symmetric): d(h 1, h 2) = 1 - i

Vector Comparison Histogram Intersection (non symmetric): d(h 1, h 2) = 1 - i min(h 1 i , h 2 i) / i h 1 i Ex. : What could be a huge drawback of image comparison using histogram intersection ?

Histograms Exercise: Outline an image database system, using statistical (histogram) information

Histograms Exercise: Outline an image database system, using statistical (histogram) information

Histograms Discussion: Which problems could occur if the database consists of the following images

Histograms Discussion: Which problems could occur if the database consists of the following images ?

Histograms

Histograms

Spatial Filtering End of histograms. And now to something completely different …

Spatial Filtering End of histograms. And now to something completely different …