1 image display matlab functions for displaying image bit planes spatial resolution quantization...
Embed Size (px)
TRANSCRIPT

1
Image Display• MATLAB functions for displaying image• Bit Planes• Spatial resolution• Quantization • Dithering

2
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]

3
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))

4
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

5
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.

6
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

7
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]

8
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]

9
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

10
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
MSB Most Significant Bit PlaneLSB Least Significant Bit Plane

11
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

12
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);
>>>>>>>>

13
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’

14
Decrease Spatial Resolution
• E.g. Lower the resolution by half on x and y axis
>> imresize(x,1/2);

15
Increase Spatial Resolution
• E.g. Increase the spatial resolution by two on X and Y axes>> imresize(x,2);

16
Interpolation Example450% Scaled up
Nearest Neighbor
Bilinear
Bicubic
http://www.dpreview.com/learn/?/key=interpolation

17
Quantization
• Digitize the image so that the number of the unique value is within the available range
0
1
2
3
0 1 2 3

18
Uniform QuantizationQuantized value
Input value0
1
2
3
MAX0.75MAX0.5MAX0.25MAX
x

19
Uniform Quantization
Original values Output value 0 - 63 0 64 -127 1 128 -191 2 192 - 255 3
MAX = 255

20
Quantization: Example
2 lev
el
3 level

21
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);

22
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

23
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.