You are on page 1of 20

NATIONAL CHENG KUNG UNIVERSITY

Inst. of Manufacturing Information & Systems

DIGITAL IMAGE PROCESSING AND SOFTWARE


IMPLEMENTATION

HOMEWORK 1

Professor name: Chen, Shang-Liang


Student name: Nguyen Van Thanh
Student ID: P96007019
Class: P9-009 Image Processing and Software Implementation
Time: [4] 2  4
1

Table of Contents
PROBLEM ................................................................................................................................................................. 2
SOLUTION ................................................................................................................................................................ 3
3.2.1 Negative transformation ............................................................................................................................ 3
3.2.2 Log transformation ..................................................................................................................................... 3
3.2.3 Power-law transformation ......................................................................................................................... 4
3.2.4 Piecewise-linear transformation ................................................................................................................ 7
3.3.1 Histogram equalization............................................................................................................................. 10
3.4.2 Subtraction ............................................................................................................................................... 12
3.6.1 Smoothing Linear Filters ........................................................................................................................... 14
3.6.2 Order-Statistics Filters .............................................................................................................................. 16
3.7.2 The Laplacian ............................................................................................................................................ 17
3.7.3 The Gradient ............................................................................................................................................. 19
2

PROBLEM

影像處理與軟體實現[HW1]
課程碼:P953300 授課教授:陳響亮 教授 助教:陳怡瑄 日期:2011/03/10
題目:請以C# 撰寫一程式,可讀入一影像檔,並可執行以下之影像
空間強化功能。
a. 每一程式需設計一適當之人機操作介面。
b. 每一功能請以不同方法分開撰寫,各項參數需讓使用者自行輸入。
c. 以C# 撰寫時,可直接呼叫Matlab 現有函式,但呼叫多寡,將列為評分考量。
(呼叫越少,分數越高)

一、 基本灰階轉換

1. 影像負片轉換

2. Log轉換

3. 乘冪律轉換

4. 逐段線性函數轉換

二、 直方圖處理

1. 直方圖等化處理

2. 直方圖匹配處理

三、 使用算術/邏輯運算做增強

1. 影像相減增強

2. 影像平均增強

四、 平滑空間濾波器

1. 平滑線性濾波器

2. 排序統計濾波器

五、 銳化空間濾波器

1. 拉普拉斯銳化空間濾波器

2. 梯度銳化空間濾波器
3

SOLUTION

Using Matlab for solving the problem

3.2.1 Negative transformation

Given an image (input image) with gray level in the interval [0, L-1], the negative of that
image is obtained by using the expression: s = (L – 1) – r,
Where r is the gray level of the input image, and s is the gray level of the output.
In Matlab, we use the commands,
>> f=imread('Fig3.04(a).jpg');
g = imcomplement(f);
imshow(f), figure, imshow(g)

In/output image Out/in image


3.2.2 Log transformation

The Logarithm transformations are implemented using the expression:


s = c*log (1+r).
In this case, c = 1. The commands,

>> f=imread('Fig3.05(a).jpg');
g=im2uint8 (mat2gray (log (1+double (f))));
imshow(f), figure, imshow(g)
4

In/output image Out/in image

3.2.3 Power-law transformation

Power-law transformations have the basic form,


s = c*r. ^, where c and  are positive constants.
The commands,

>> f = imread ('Fig3.08(a).jpg');


f = im2double (f);
[m n]=size (f);
c = 1;
gama = input('gama value = ');
for i=1:m
for j=1:n
g(i,j)=c*(f(i,j)^gama);
end
end;
imshow(f),figure, imshow(g);

With  = 0.6, 0.4 and 0.3 respectively, we can get three images respectively, as shown in the
following figure,
5

a b (a) The original image. (b) – (d) result of applying the power -
c d law transformation with  = 0.6, 0.4 and 0.3 respectively
6

a b (a) The original image. (b) – (d) result of applying the power -
c d law transformation with  = 3, 4 and 5 respectively
7

3.2.4 Piecewise-linear transformation

Contrast stretching
The commands,
% function contrast stretching;
>> r1 = 100; s1 = 40;
r2 = 141; s2 = 216;
a = (s1/r1);
b = ((s2-s1)/ (r2-r1));
c = ((255-s2)/ (255-r2));
k = 0:r1;
y1 = a*k;
plot (k,y1); hold on;
k = r1: r2;
y2 = b*(k - r1) + a*r1;
plot (k,y2);
k = r2+1:255;
y3 = c*(k-r2) + b*(r2-r1)+a*r1;
plot (k,y3);
xlim([0 255]);
ylim([0 255]);
xlabel('input gray level, r');
ylabel('outphut gray level, s');
title('Form of transformation');
hold on; figure;
f = imread('Fig3.10(b).jpg');
[m, n] = size (f);
for i = 1:m
for j = 1:n
if((f(i,j)>=0) & (f(i,j)<=r1))
g(i,j) = a*f(i,j);
else
if((f(i,j)>r1) & (f(i,j)<=r2))
g(i,j) = ((b*(f(i,j)-r1)+(a*r1)));
else
if((f(i,j)>r2) & (f(i,j)<=255))
g(i,j) = ((c*(f(i,j)-r2)+(b*(r2-r1)+(a*r1))));
end
end
end
end
end
imshow(f), figure, imshow(g);

% function thresholding

>> f = imread('Fig3.10(b).jpg');
[m, n] = size(f);
for i = 1:m
for j = 1:n
if((f(i,j)>=0) & (f(i,j)<128))
8

g(i,j) = 0;
else
g(i,j) = 255;
end
end
end
imshow(f), figure, imshow(g);

a b (a) Form of contrast stretching transformation function.


c d (b) A low-contrast image. (c) Result of contrast stretching. (d)
Result of thresholding
9

a bc
(a) An 8-bit image. (b) – (f) The 8 bit plane
def
10

3.3.1 Histogram equalization


The transformation function of histogram equalization is

( ) ∑ ( ) ∑

k = 0, 1, …, L – 1.

% Histogram;
f1 = imread('Fig3.15(a)1top.jpg');
f2 = imread('Fig3.15(a)2.jpg');
f3 = imread('Fig3.15(a)3.jpg');
f4 = imread('Fig3.15(a)4.jpg');
f = input('image: ');
imhist(f), figure;
g = histeq(f, 256);
imshow(g), figure, imhist(g);

a bc
Fig. 3.17 Transformation functions (1) through (4) were obtained from the
images in Fig. 3.17 (a), using histogram equalization
11

a b
Fig. 3.15 Four
basic image
types: dark,
light, low
contrast, high
contrast, and
their
corresponding
histograms
12

a bc
Fig. 3.17 (a) Image from Fig. 3.15. (b) Results of histogram equalization. (c)
Corresponding histograms.
13

3.4.2 Subtraction

The difference between tow images f (x, y) and h (x, y), expressed as
g (x, y) = f (x, y) – h (x, y),
The commands,

f1 = imread('Fig3.28.a.jpg');
f2 = imread('Fig3.28.b.jpg');
f3 = imsubtract(f1,f2);
f4 = histeq(f3,256);
imshow(f3), figure, imshow(f4);

a b
cd
Fig. 3.17 (a) The first image. (b) The second image. (c) Difference between (a) and
(b). (d) Histogram – equalized difference image.
14

3.6.1 Smoothing Linear Filters


The commands,
f = imread('Fig3.35(a).jpg');
w3 = 1/ (3. ^2)*ones (3);
g3 = imfilter (f, w3, 'conv', 'replicate', 'same');
w5 = 1/ (5. ^2)*ones (5);
g5 = imfilter (f, w5, 'conv', 'replicate', 'same');
w9 = 1/ (9. ^2)*ones (9);
g9 = imfilter (f, w9, 'conv', 'replicate', 'same');
w15 = 1/ (15. ^2)*ones (15);
g15 = imfilter (f, w15, 'conv', 'replicate', 'same');
w35 = 1/ (35. ^2)*ones (35);
g35 = imfilter(f, w35, 'conv', 'replicate', 'same');
imshow (g3), figure, imshow (g5), figure, imshow (g9), figure, imshow
(g15), figure, imshow (g35), figure;
h = imread ('Fig3.36(a).jpg');
h15 = imfilter (h, w15, 'conv', 'replicate', 'same');
[m, n] = size (h15);
for i = 1:m
for j = 1:n
if ((h15 (i,j)>=0) & (h15 (i,j)<128))
g (i,j) = 0;
else
g(i,j) = 255;
end
end
end
imshow(h15), figure, imshow(g);
15

a b Fig. 3.35 (a) Original image, of size 500 x 500 pixels. (b) – (f) Result of
c d smoothing with square averaging filter masks of size n = 3, 5, 9, 15,
and 35 respectively.
e f
16

a b c
Fig. 3.36 (a) Original image. (b) Image processed by a 15 x 15 averaging mask.
(c) Result of thresholding (b)

3.6.2 Order-Statistics Filters

The commands,

>> f = imread('Fig3.37(a).jpg');
w3 = 1/(3.^2)*ones(3);
g3 = imfilter(f, w3, 'conv', 'replicate', 'same');
g = medfilt2(g3);
imshow(g3), figure, imshow(g);

Fig. 3.37 (a) X – ray image of circuit board corrupted by salt – and –
a b c
pepper noise. (b) Noise reduction with a 3 x 3 averaging mask. (c)
Noise reduction with a 3 x 3 median filter
17

3.7.2 The Laplacian

The Laplacian for image enhancement is as follows:


( ) ( )
( ) ( )
( ) ( )
{
The commands,

% Laplacian function
f1 = imread('Fig3.40(a).jpg');
w4 = fspecial('laplacian', 0);
g1 = imfilter(f1, w4, 'replicate');
imshow(g1, [ ]), figure;
f2 = im2double(f1);
g2 = imfilter(f2, w4, 'replicate');
imshow(g2, [ ]), figure;
g3 = imsubtract(f2,g2);
imshow(g3)

a b
c d
Fig. 3.40 (a) Image of
the North Pole
of the moon.
(b) Laplacian
image scaled
for display
purposes. (d)
Image
enhanced by
Eq. (3.7 – 5)
18

% Laplacian simplication
f1 = imread ('Fig3.41(c).jpg');
w5 = [0 -1 0; -1 5 -1; 0 -1 0];
g1 = imfilter (f1, w5, 'replicate');
imshow (g1), figure;
w9 = [-1 -1 -1; -1 9 -1; -1 -1 -1];
g2 = imfilter (f1, w9, 'replicate');
imshow (g2);

0 -1 0
-1 5 -1 -1 -1 -1
0 -1 0 -1 9 -1

-1 -1 -1

Fig. 3.37 (a) Composite Laplacian mask. (b) A second composite


a bc mask. (c) Scanning electron microscope image. (d) and (e)
Result of filtering with the masks in (a) and (b) respectively.
de
19

3.7.3 The Gradient

The commands,

>> f1 = imread('Fig3.45(a).jpg');
w = fspecial('sobel');
g1 = imfilter(f1, w, 'replicate');
imshow(g1);

a b Fig. 3.45 (a) Optical image of contact lens (note defects on the
boundary at 4 and 5 o’clock). (b) Sobel gradient

You might also like