230 likes | 438 Views
Image Display. MATLAB functions for displaying image Bit Planes Spatial resolution Quantization Dithering. MATLAB Functions. Command: image display matrix as image default: use current color map to assign color Command: imshow display uint8 matrix as image
E N D
Image Display MATLAB functions for displaying image Bit Planes Spatial resolution Quantization Dithering
MATLAB Functions • Command: image • display matrix as image • default: use current color map to assign color • Command: imshow • display uint8 matrix as image • for double matrix, display in the range of [0,1]
MATLAB: image Function • Require mapping to display grayscale images • No mapping required for true color images • Commands to add after image: • truesize : display one matrix element as one pixel • axis off : turn off axis labelling • colormap(gray(num_color)) : adjust color map to grayscale • Note: Find the number of gray level by command size(unique(matrix))
Notes on Color Map • Mapping to fewer color than required. • Result: Brighter image or Darker image • Mapping to more color than required • Result: Brighter image or Darker image
Notes on Color Map • Mapping to fewer color than required produces brighter image. (pixel whose intensity higher than the defined value assigned the highest value (white)) • Mapping to more color than required produces darker image. (no pixels mapped to white) • For indexed color image, map to the image’s palette.
imshow for Double Matrix • Range is [0,1] not [0,255]. • How to do it? • imshow(double_matrix/255) • Vary the brightness of the image: • imshow(double_matrix/value) • value> 255: darker; value < 255: brighter
Conversion: Double to Uint Image • Manually >> b = double(a); >> c = b/255; • Specific command: im2double >> d = im2double(a); • Note: im2double automatically scale the output to the range of [0,1]
Conversion: Double to Uint Image • Manually >> a = uint8(c * 255); • Specific command: im2uint8 >> a = im2uint8(c); • Note: im2uint8 automatically scale the input (range [0,1]) to the range of [0,255]
Display Binary Image • Use uint8 data type with logical flag on >> imshow(logical(binary_matrix)) Or >> imshow(double(binary_matrix)) • For normal grayscale image >> logical_matrix = integer_matrix > threshold • Conversion: logical to uint8 >> matrix = +matrix
LSB Least Significant Bit Plane MSB Most Significant Bit Plane Bit Plane • 8-bit unsigned integer • Bit plane: binary image whose pixel is the value at the particular bit in the 8-bit unsigned integer
Bit Plane: Lena Bit Plane#0 Bit Plane#1 Bit Plane#2 Bit Plane#3 Bit Plane#4 Bit Plane#5 Bit Plane#6 Bit Plane#7
Bit Plane Construction: Example >> c = imread(‘cameraman.tif’); >> cd = double(c); >> c0 = mod(cd,2); >> c1 = mod(floor(cd/2),2); >> c2 = mod(floor(cd/4),2); >> c3 = mod(floor(cd/8),2); >> c4 = mod(floor(cd/16),2); >> c5 = mod(floor(cd/32),2); >> c6 = mod(floor(cd/64),2); >> c7 = mod(floor(cd/128),2); >> >> >> >>
Spatial Resolution • Density of the pixels over the image • Higher spatial resolution = more pixels in the image • Change spatial resolution by imresize command Syntax: imresize(matrix, scale, method) imresize(matrix, scale) method: ‘nearest’ , ‘bilinear’, ‘bicubic’
Decrease Spatial Resolution • E.g. Lower the resolution by half on x and y axis >> imresize(x,1/2);
Increase Spatial Resolution • E.g. Increase the spatial resolution by two on X and Y axes >> imresize(x,2);
Interpolation Example 450% Scaled up Nearest Neighbor Bicubic Bilinear http://www.dpreview.com/learn/?/key=interpolation
3 2 1 0 Quantization • Digitize the image so that the number of the unique value is within the available range 0 1 2 3
Uniform Quantization Quantized value 3 2 x 1 0 0.25MAX 0.5MAX MAX 0.75MAX Input value
Uniform Quantization MAX = 255 Original values Output value 0 - 63 0 64 -127 1 128 -191 2 192 - 255 3
Quantization: Example 2 level 3 level
Quantization in MATLAB • Quantization is simply applying flooring function after division • Input image matrix = x • Number of output grayscales = n • Quantized output: f = floor(double(x)/n);
Quantization in MATLAB: Method 1 Command Number of grayscales uint8(floor(double(x)/2)*2) 128 uint8(floor(double(x)/4)*4) 64 uint8(floor(double(x)/8)*8) 32 uint8(floor(double(x)/16)*16) 16 uint8(floor(double(x)/32)*32) 8 uint8(floor(double(x)/64)*64) 4 uint8(floor(double(x)/128)*128) 2
Quantization in MATLAB: Method 2 Command Number of grayscales imshow(grayslice(x,128),gray(128)) 128 imshow(grayslice(x,64),gray(64)) 64 imshow(grayslice(x,32),gray(32)) 32 imshow(grayslice(x,16),gray(16)) 16 imshow(grayslice(x,8),gray(8)) 8 imshow(grayslice(x,4),gray(4)) 4 imshow(grayslice(x,2),gray(2)) 2 grayslice produces a uint8 version of image x, gray(n) produces a color map of n values.