Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Technology
Faculty of Engineering and Industrial
Sciences
EEE40003
DIGITAL SIGNAL
&
IMAGE
PROCESSING
Lab 4: Image Processing
Group: 07 (Tuesday 12.30 pm)
Student Name
Student Number
WARNAKULASURIYA
PEIRIS
1729608
Signature
PART A
A1: Reading an Image
1)
For reading the image trio.tiff into an image array called trio we used the
command trio=imread (trio.tiff). This image is stored in a matrix of 256 x 256
as a 8-bit unsigned integers.
Command:
trio = imread('trio.tiff');
imshow(trio)
2)
The image above is an intensity image where the array values are given as
intensity values. For 8 bit integer arrays 0 corresponds to black and 255 to white.
A3: Pseudocolor
3)
Command:
colormap('hsv');
The picture above is an indexed image where the array values are given as
indexes into a colour look-up table. For 8-bit data, 0 corresponds to the first
element, 1 is for the next entry and like that till up to 255.
250
200
150
100
50
0
5)
Command: colormap('hot');
colormap('cool');
Command:
Command:
200
imshow(trio);
150
improfile;
100
50
50
100
150
Distance along profile
200
250
Command:
iprocprofile(trio); EEE40003 DSP |Lab Report Image Processing
250
Intensity
200
150
100
50
7)
100 200
Distance
300
250
250
200
200
150
150
Intensity
Intensity
100
50
50
100
50
100
Distance
150
20 40 60
Distance
Intensity
Command:
250
coin = imread('coin.tiff');
200
coin1=imread('coin1.tiff');
150
iprocprofile(coin);
100
50
50 100 150
Distance
8)
EEE40003 DSP |Lab Report Image Processing
Intensity
200
100
50
100
Distance
150
200
Intensity
200
100
20
40
60
80 100
Distance
120
140
160
180
Command:
iprocprofile(coin,coin1)
QUESTION 1:
From part 8, we can clearly observe the difference between the figures
of coin and coin1. The figure of coin shows that it has less illumination
than coin1 figure. Also, the distance v/s intensity graph clearly shows
the intensity of both images, where blue line represents coin and red
line coin1 figures.
Command:
dimroom=imread('dimroom.tiff
');
imshow(dimroom);
Gamma= 1
Command:
adjroom=imadjust(dimroom,[0
0.3],[0 1],1);
figure(2);
imshow(adjroom);
Gamma=3
Gamma= 6
Command:
Command:
adjroom=imadjust(dimroom
,[0 0.3],[0 1],3);
figure(2);
adjroom=imadjust(dimroom,
[0 0.3],[0 1],6);
figure(2);
imshow(adjroom);
imshow(adjroom);
Considering the above images, where we used different gamma values (1, 3, 6),
we can clearly say that if gamma value increases the image gets darker and
darker. Thereby, arriving at a conclusion that intensity will be higher for the less
gamma values images.
2)
Command:
adjroom=imadjust(dimroom,st
retchlim(dimroom),[0 1],1);
figure(2);
imshow(adjroom);
The method used in the image above is called Stretchlim. This is a another way
to improve the image, by evaluating the input values.
x 10
Command:
[h1,x1]=imhist(dimroom);
[h2,x2]=imhist(adjroom);
0
0
50
100
150
200
250
300
subplot(2,1,1);
x 10
stairs(x1,h1);
subplot(2,1,2);
2
0
0
stairs(x2,h2);
50
100
150
200
250
300
The above histogram plots indicate the variation of different intensity of the
number of pixels of image dimroom and adjroom (where we used stretchlim).
QUESTION 2:
From the figure above we can observe the difference between the
two histogram plots. The first figure is kind of stacked together,
but the second figure is well spaced and occupied. Finally, we can
arrive at the conclusion that the second figure has high intensity
and thereby giving a brighter image.
Command:
[hroom,tout]=histeq(dimroom)
;
figure(1);
subplot(2,2,1);
imshow(dimroom);
subplot(2,2,2);
imshow(hroom);
subplot(2,2,3);
stairs(x1,h1);
[h3,x3]=imhist(hroom);
EEE40003 DSP |Lab Report Image
Processing 9
subplot(2,2,4);
stairs(x3,h3);
x 10
100
200
300
x 10
100
200
300
5)
1
0.9
Command:
0.8
0.7
tin=linspace(0,1,256);
0.6
0.5
clf
0.4
plot(tin,tout)
0.3
0.2
0.1
0
0.2
0.4
0.6
0.8
QUESTION 3:
We can clearly account the difference in the graph plotted in part
5 above. For small values of input, the output has risen steeply
and after reaching the input value near to 1, we can observe that
there is no considerable rise in the output value.
10
1)
Command:
grid=imread('grid.tiff');
imshow(grid);
tgrid=im2bw(grid,0.3);
figure;
imshow(tgrid);
2)
50
50
100
100
150
150
200
200
250
250
300
300
50
100
150
200
250
Command:
grid=imread('grid.tiff');
imshow(grid);
50
300
100
150
200
250
300
tgrid=im2bw(grid,0.3);
figure;
imshow(tgrid);
iprocthold(grid);
50
50
100
100
150
150
200
200
250
250
300
300
50
100
150
200
250
300
50
100
150
200
250
300
From the figures above we can say that for small threshold values there will be
whiter region, where it is converted to the binary number 1. If we increase the
EEE40003 DSP |Lab Report Image Processing
11
50
50
100
100
150
150
grid1=imread('grid1.tiff');
200
200
iprocthold(grid1);
250
250
300
50
100
150
200
250
300
Command:
300
50
100
150
200
250
300
In the figure above, we attempt to separate the foreground and background level
of average intensity. It is quite difficult in practise to separate foreground and
background.
4)
Command:
50
50
100
100
150
150
200
200
250
250
300
300
50
100
150
200
250
300
blank=imread('blank1.tiff');
grid2=iprocnorm(grid1,blank);
iprocthold(grid2);
50
100
150
200
250
300
In the figure above, we can see that the foreground and background is separated
almost correctly. This is because we use a blank image with the same
illumination as the original image. Then we use the blank image as the reference
image to correct the original image and then used iprocthold to obtain a single
threshold level.
EEE40003 DSP |Lab Report Image Processing
12
5)
Command:
iprocprofile(grid1,grid2)
I n t e n s it y
250
200
150
100
50
50
100
150
Distance
200
250
250
200
200
Inte ns ity
Intens ity
150
100
50
0
150
100
50
50
100
150
Distance
200
20
40
60
80
100 120
Distance
140
160
180
200
By comparing the images grid1 and grid2, we can observe that the original
image grid1 has less intensity than the corrected image grid1 even though they
have the same shape. The red line represents the corrected image and blue line
represents the original image.
QUESTION 4:
It is difficult to find the single threshold level for the grid1 image
because the intensity level of foreground and background are not
uniform. For the grid2 image the intensity levels are almost
unique and we can find a single threshold level easily and thereby
converting to a binary image.
13
Command:
trio1=edge(trio,'sobel');
imshow(trio1);
In the image above we used sobel method to detect the edge of the image.
Canny Method
Command:
trio2=edge(trio,'canny');
imshow(trio2);
In the image above, it more clear detection of the edge and the method we used
here is called canny method.
14