Professional Documents
Culture Documents
This work is licensed under the Creative Commons Attribution-Noncommercial 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/2.5/ or
send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
Digital Image
gridof
ofsquares,
squares,
aagrid
eachof
ofwhich
which
each
containsaasingle
single
contains
color
color
eachsquare
squareisis
each
calledaapixel
pixel(for
(for
called
pictureelement)
element)
picture
March 6, 2015
Pixels
March 6, 2015
Pixels
March 6, 2015
Pixels
Pixel Location: p = (r , c)
Pixel Value: I(p) = I(r , c)
March 6, 2015
Pixel : [ p, I(p)]
5
Pixels
March 6, 2015
Pixel : [ p, I(p)]
real image
March 6, 2015
sampled
quantized
sampled &
quantized
row index
row index
pixel grid
real image
March 6, 2015
sampled
quantized
sampled &
quantized
Take
Takethe
theaverage
average
within
each
within eachsquare.
square.
Sampling
IC ,
I S ( r, c )
continuous image
sampled image
March 6, 2015
Take
Takethe
theaverage
average
within
each
within eachsquare.
square.
Sampling
IC ,
I S ( r, c )
continuous image
sampled image
March 6, 2015
10
Take
Takethe
theaverage
average
within
each
within eachsquare.
square.
Sampling
IC ,
I S ( r, c )
continuous image
sampled image
March 6, 2015
11
Take
Takethe
theaverage
average
within
each
within eachsquare.
square.
Sampling
IC ,
I S ( r, c )
continuous image
sampled image
March 6, 2015
12
March 6, 2015
13
March 6, 2015
14
March 6, 2015
15
http://boingboing.net/
http://boingboing.net/
March 6, 2015
16
left
leftclick
clickhere
hereand
andhold
hold
March 6, 2015
drag
dragto
tohere
hereand
andrelease
release
17
From
Fromthis
thisclose-up
close-up
we
can
estimate
we can estimate
the
thecoordinates
coordinates of
of
the
theregion:
region:
rows:
rows:about
about125
125to
to425
425
cols:
about
700
to
1050
cols: about 700 to 1050
March 6, 2015
18
Here
Hereititis:
is:
Now
Nowclose
closethe
the
other
otherimage
image
March 6, 2015
19
Bring
Bringititto
tothe
the
front
using
the
front using the
figure
figurecommand,
command,
March 6, 2015
20
then
thentype
typeclose
close
at
atthe
theprompt.
prompt.
March 6, 2015
21
March 6, 2015
22
March 6, 2015
23
March 6, 2015
24
March 6, 2015
25
Intensityvalues
values
Intensity
areintegers
integers
are
between00and
and255.
255.
between
227
222
96
imageclass:
class:uint8
uint8
image
imagetype:
type:truecolor
truecolor
image
row: 231
March 6, 2015
26
Intensityvalues
values
Intensity
arenumbers
numbers
are
between00and
and1.1.
between
0.89
0.87
0.38
imageclass:
class:double
double
image
imagetype:
type:truecolor
truecolor
image
row: 231
March 6, 2015
27
Numberat
atpixel
pixel
Number
locationisisan
anindex
index
location
intoaacolormap.
colormap.
into
Intensityvalues
values
Intensity
areintegers
integers
are
between00and
and1.1.
between
colormap
0.1804
0.6863
0.8863
0.1882
0.7098
0.9059
0.0627
0.2902
0.2549
red
green
blue
col: 326
256
226
231
65
row: 231
imageclass:
class:uint8
uint8
image
imagetype:
type:colormapped
colormapped
image
March 6, 2015
28
24-bit truecolor
March 6, 2015
29
24-bit truecolor
March 6, 2015
30
111 121
48 111
48
110
48 111 110 111
110 111 121
48 121
121
48 110 111
48
110 121
48 121 110
actual values
values in
in CMAP(109:113,:)
CMAP(109:113,:)
actual
R
G
B
109
110
111
112
113
0.6588
0.2196
0.4706
0.5333
0.2824
0.4706
0.1569
0.3451
0.4078
0.2196
0.8471
0.2824
0.5961
0.6588
0.3451
255*CMAP(109:113,:)
255*CMAP(109:113,:)
R
G
B
109
110
111
112
113
168
56
120
136
72
120
40
88
104
56
216
72
152
168
Last
Last
33
cols.
cols.
only
only
88
March 6, 2015
31
32
graycolormap:
colormap:
gray
R(k)=G(k)=B(k)
R(k)=G(k)=B(k)
25633matrix
matrix
256
redcolormap:
colormap:
red
GG==BB==0;0;
greencolormap:
colormap:
green
RR==BB==0;0;
bluecolormap:
colormap:
blue
RR==GG==0;0;
colormap(kcm)
March 6, 2015
0
0.0039
0.0078
0.0118
0.0157
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
Thiscode,
code, 0:255
0:255, ,
This
generatesaa11row
rowby
by
generates
256element
elementvector
vector
256
ofclass
classdouble
doublethat
that
of
containsnumbers
numbers00
contains
through255
255inclusive.
inclusive.
through
0.9843
0.9882
0.9922
0.9961
1.0000
This, (0:255)
(0:255), ,has
has
This,
thesame
samecontents
contents
the
andclass
classbut
butisisaa256
256
and
rowby
by11column
column
row
vector. The
The
vector.
apostrophe()()isisthe
the
apostrophe
matrixtranspose
transpose
matrix
operator.
operator.
33
R,
R,G,
G,&&BBbands
bandsofofaa
truecolor
truecolorimage
imagedisplayed
displayed
with
grayscale
colormaps
with grayscale colormaps
>> I = imread('blue_grapes_sm.jpg','jpg');
>> I = imread('blue_grapes_sm.jpg','jpg');
>>
>> Rd
Rd == I(:,:,1);
I(:,:,1);
>>
colormap(kcm);
>> colormap(kcm);
>>
>> Gn
Gn == I(:,:,2);
I(:,:,2);
>>
>> colormap(kcm);
colormap(kcm);
>>
>> Bl
Bl == I(:,:,3);
I(:,:,3);
>>
>> colormap(kcm);
colormap(kcm);
March 6, 2015
34
R,
R,G,
G,&&BBbands
bandsofofaa
truecolor
truecolorimage
imagedisplayed
displayed
with
grayscale
colormaps
with grayscale colormaps
>> I = imread('blue_grapes_sm.jpg','jpg');
>> I = imread('blue_grapes_sm.jpg','jpg');
>>
>> Rd
Rd == I(:,:,1);
I(:,:,1);
>>
colormap(kcm);
>> colormap(kcm);
R
>>
>> Gn
Gn == I(:,:,2);
I(:,:,2);
>>
>> colormap(kcm);
colormap(kcm);
G
March 6, 2015
>>
>> Bl
Bl == I(:,:,3);
I(:,:,3);
>>
>> colormap(kcm);
colormap(kcm);
B
35
R,
R,G,
G,&&BBbands
bandsofofaa
truecolor
truecolorimage
imagedisplayed
displayed
with
tinted
colormaps
with tinted colormaps
>> I = imread('blue_grapes_sm.jpg','jpg');
>> I = imread('blue_grapes_sm.jpg','jpg');
>>
>> Rd
Rd == I(:,:,1);
I(:,:,1);
>>
colormap(rcm);
>> colormap(rcm);
>>
>> Gn
Gn == I(:,:,2);
I(:,:,2);
>>
>> colormap(gcm);
colormap(gcm);
>>
>> Bl
Bl == I(:,:,3);
I(:,:,3);
>>
>> colormap(bcm);
colormap(bcm);
March 6, 2015
36
R,
R,G,
G,&&BBbands
bandsofofaa
truecolor
truecolorimage
imagedisplayed
displayed
with
tinted
colormaps
with tinted colormaps
>> I = imread('blue_grapes_sm.jpg','jpg');
>> I = imread('blue_grapes_sm.jpg','jpg');
>>
>> Rd
Rd == I(:,:,1);
I(:,:,1);
>>
colormap(rcm);
>> colormap(rcm);
R
>>
>> Gn
Gn == I(:,:,2);
I(:,:,2);
>>
>> colormap(gcm);
colormap(gcm);
G
March 6, 2015
>>
>> Bl
Bl == I(:,:,3);
I(:,:,3);
>>
>> colormap(bcm);
colormap(bcm);
B
37
R,
R,G,
G,&&BBbands
bandsofofaa
truecolor
truecolorimage
imagedisplayed
displayed
with
grayscale
colormaps
with grayscale colormaps
>> I = imread('blue_grapes_sm.jpg','jpg');
>> I = imread('blue_grapes_sm.jpg','jpg');
>>
>> Rd
Rd == I(:,:,1);
I(:,:,1);
>>
colormap(kcm);
>> colormap(kcm);
R
>>
>> Gn
Gn == I(:,:,2);
I(:,:,2);
>>
>> colormap(kcm);
colormap(kcm);
G
March 6, 2015
>>
>> Bl
Bl == I(:,:,3);
I(:,:,3);
>>
>> colormap(kcm);
colormap(kcm);
B
38
% truecolor as .bmp
imwrite(I,image_name.bmp,bmp);
% truecolor as .jpg (default quality = 75)
imwrite(I,image_name.jpg,jpg);
% truecolor as .jpg (quality = 100)
imwrite(I,image_name.jpg,jpg,Quality,100);
% colormapped as .bmp
imwrite(I,cmap,image_name.bmp,bmp);
% colormapped as .gif
imwrite(I,cmap,image_name.gif,gif);
March 6, 2015
Assuming
Assumingthat
that
IIcontains
containsthe
theimage
image
of
the
correct
class,
of the correct class,
that
that
cmap
cmapisisaacolormap,
colormap,
and
that
and that
image_name
image_nameisisthe
the
file-name
that
you
file-name that you
want.
want.
39
Double Exposure:
Adding Two Images
March 6, 2015
40
March 6, 2015
41
March 6, 2015
42
March 6, 2015
43
March 6, 2015
44
Intensity Masking:
Multiplying Two Images
March 6, 2015
45
March 6, 2015
46
March 6, 2015
scaledback
backinto
intothe
therange
range0-255.
0-255.
scaled
47
IP_Function
IP_Functionisis
some
somearbitrary
arbitraryimage
image
processing
function
processing function
that
thatyou
youor
orsomeone
someone
else
has
written.
else has written.
Rather than
for
for rr == 1:R
1:R
for
c
for c == 1:C
1:C
J(r,c,:)
J(r,c,:) == IP_Function(I(r,c,:));
IP_Function(I(r,c,:));
end
end
end
end
use, if possible
JJ == IP_Function(I);
IP_Function(I);
But, sometimes that is not possible.
For example, if the output, J, is decimated with respect to the input, I,
the above will not work (unless, of course, it is done within
IP_function).
March 6, 2015
48
Here,
Here,
n=3
n=3
1:n:R;
rr == 1:n:R;
I(r,:,:)
I(r,:,:)
I(:,c,:)
I(:,c,:)
March 6, 2015
c = [1 4 7 10 13 16 19 22 25 28 31]
1:n:C;
cc == 1:n:C;
r = [1 4 7 10 13 16 19 22 25 28 31]
49
Here,
Here,
n=3
n=3
Takethe
the
Take
pixels
pixels
indexed
indexed
byboth
both
by
andc.c.
r rand
This
Thisisiscalled,
called,
vectorizing.
vectorizing.
I(r,c)
I(r,c)
March 6, 2015
50
Here,
Here,
n=3
n=3
J = I(r,c,:);
image,
image, II
rr == 1:n:R;
1:n:R;
March 6, 2015
cc == 1:n:C;
1:n:C;
51
52
53
54
55
56
57
Fun(if
(ifyoure
yourean
animaging
imaginggeek)
geek)
Fun
thingto
totry
trywith
withMatlab
Matlab
thing
indexing: Scramble
Scramblean
animage!
image!
indexing:
March 6, 2015
58
>>
>>
>>
>>
>>
>>
>>
>>
xlabel('What is it?')
K(r,c,:) = J;
figure
image(K)
truesize
title('Yay!!!')
xlabel('Photo: Lawraa on Flickr.com')
March 6, 2015
59