Image J Java image processing tool from NIH

  • Slides: 19
Download presentation
Image. J Java image processing tool from NIH Reads / writes a large variety

Image. J Java image processing tool from NIH Reads / writes a large variety of images Many image processing operations are implemented Good rapid prototyping / testing tool Includes the ability to write your own plugins 1 http: //rsbweb. nih. gov/ij/ Convenient way to implement your own algorithms, using their image class and i/o methods Ellen L. Walker

Point Processes 2 Pixel by pixel transformation Output pixel depends only on corresponding input

Point Processes 2 Pixel by pixel transformation Output pixel depends only on corresponding input pixel Examples: Out(r, c) = In(r, c) * 1. 25 Out(r, c) = In(r, c) + 25 Out(r, c) = (In(r, c))2 Ellen L. Walker

Linear Transformations 3 Out(r, c) = In(r, c) * gain + bias Gain controls

Linear Transformations 3 Out(r, c) = In(r, c) * gain + bias Gain controls contrast Bias controls brightness Location dependent: Out(r, c) = In(r, c) * gain(r, c) + bias(r, c) E. g. “sky darkening filter” Linear Blend Out(r, c) = (lambda) * In 1(r, c) + (1 -lambda) * In 2(r, c) If In 1 and In 2 are images, a sequence of these from lambda = 0 to lambda=1 is an image dissolve Ellen L. Walker

Histogram 4 An image histogram counts the number of pixels at each brightness. Color

Histogram 4 An image histogram counts the number of pixels at each brightness. Color images have 3 histograms (red, green, blue) Ellen L. Walker

Information in Histogram Contrast (variation in brightness) Foreground vs. background color 5 Are bars

Information in Histogram Contrast (variation in brightness) Foreground vs. background color 5 Are bars spread over the whole range? Are there two separate “peaks” with a valley between? Ellen L. Walker

Applications of Histogram 6 Thresholding Find a value that separates foreground / background values

Applications of Histogram 6 Thresholding Find a value that separates foreground / background values Look for a “valley” between two peaks (may or may not be what you need) Contrast enhancement Histogram equalization – spread the data as evenly through the histogram as possible Goal: wide, flat histogram Ellen L. Walker

Example: Histogram Equalization 7 Original Modified Ellen L. Walker

Example: Histogram Equalization 7 Original Modified Ellen L. Walker

Algorithm: Histogram Equalization Find cumulative distribution For each intensity I, c(I) = # pixels

Algorithm: Histogram Equalization Find cumulative distribution For each intensity I, c(I) = # pixels <= I Code: C[0]=Hist[0]; For(greylevel =1; greylevel < max; greylevel++){ C[greylevel] = Hist[greylevel] + C[greylevel-1]; C[greylevel] = C[greylevel] / (double)(rows*cols); } 8 Ellen L. Walker

Algorithm: Histogram Equalization Use C(I) as a lookup table to determine the final value

Algorithm: Histogram Equalization Use C(I) as a lookup table to determine the final value of each pixel. Since C(I) ranges from 0 to 1 (why? ), multiply C(I) by the max pixel value to get the output value Code: For(r=0; r<rows; r++) for(c=0; c<cols; c++) out[r][c] = C[(in[r][c])]*MAX; 9 Ellen L. Walker

Locally Adaptive Histogram Equalization Instead of doing histogram equalization using the whole image, compute

Locally Adaptive Histogram Equalization Instead of doing histogram equalization using the whole image, compute the distribution for a moving window around the given pixel. Avoids effect of bright light at one corner washing out everything in the image. 10 Ellen L. Walker

Image Neighborhoods can be defined for each pixel The two most common neighborhoods 4

Image Neighborhoods can be defined for each pixel The two most common neighborhoods 4 -neighborhood N W E S 11 8 -neighborhood Ellen L. Walker

Applying a Mask is a set of relative pixel positions. One is designated the

Applying a Mask is a set of relative pixel positions. One is designated the origin (0, 0) - usually at center Each mask element is weighted To apply the mask, put the origin pixel over the image pixel and multiply weights by the pixels under them, then add up all the values. Usually this is repeated for every pixel in the image. Assumptions must be made for pixels near the edge of the image. 12 Ellen L. Walker

Mask application example Mask = 1 1 1 Apply to every pixel in image:

Mask application example Mask = 1 1 1 Apply to every pixel in image: Result is 00011 00001 00122 00011 01232 00111 12332 01111 23332 11111 13 Boundary pixels are gray Ellen L. Walker

Mathematical Representation of Mask Operations 14 Equation from Chapter 3 g is the output

Mathematical Representation of Mask Operations 14 Equation from Chapter 3 g is the output image f is the input image h is the mask (also called kernel) Short form (convolution operator) Ellen L. Walker

Masks that "blur" "Box mask" - every pixel gets the average of its neighborhood

Masks that "blur" "Box mask" - every pixel gets the average of its neighborhood 111 After computing, divide by 9 (mask sum) 111 to keep image from getting too bright 111 "Weighted average" - divide by 16 after application 121 242 121 15 Ellen L. Walker

Why blur? Avoid effects of small random noise (“salt and pepper”) Remove small features

Why blur? Avoid effects of small random noise (“salt and pepper”) Remove small features to emphasize larger ones Bigger masks blur more / remove larger features Sequence of masks generates sequence of increasingly blurred images (useful for some matching algorithms) First step in sharpening the image (!) Sharp(x, y) = orig(x, y) + gamma (orig(x, y) – (blur * orig(x, y))) 16 Ellen L. Walker

Boundary Effects (padding) Figure 3. 12 17 Ellen L. Walker

Boundary Effects (padding) Figure 3. 12 17 Ellen L. Walker

Common Masks Figure 3. 13 18 Ellen L. Walker

Common Masks Figure 3. 13 18 Ellen L. Walker

Median Filtering Example of a non-linear filter Replace the central pixel of a window

Median Filtering Example of a non-linear filter Replace the central pixel of a window with the median pixel of the window Compare to box filter, which replaces with average value in the window Tends to preserve edges (why? ) 19 Ellen L. Walker