You are on page 1of 26

XỬ LÝ ẢNH CƠ BẢN

Phạm Thế Bảo


Khoa Toán – Tin học
Trường ĐHKKHTN Tp.HCM

Xử lý ảnh
Xử lý ảnh là xây dựng một ảnh mới g từ một ảnh
cho trước f.
Chúngg ta có thể biến đổi ff.

Hoặc:

Phép toán nào dùng cho biến đổi?

1
Xử lý điểm ảnh
Một loại đơn giản nhất của biến đổi là tác động
trực tiếp đến vị trí điểm ảnh (x,y):
g = t(f)
()
Đây là xử lý trên điểm ảnh.

Làm như thế nào?


Dạng của t?

Thao tác trên điểm

Giá trị g(x,y) sẽ phụ thuộc vào f(x,y) tại (x,y) (và không phụ thuộc vào các
pixel láng giềng).
Chúng ta thường viết s = T(r) với s là giá trị sau khi thao tác và r là giá trị
pixel cần biến đổi.

T là hàm tăng ánh xạ từ [0,1] vào [0,1].

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

2
Ảnh âm bản

T(r) = s = L-1-r, L: Giá trị xám lớn nhất

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Âm bản

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

3
Độ tương phản

Tăngg vùng g linh họat của g


giá trị
xám trong ảnh ban đầu.
Giả sử vùng cần mở rộng là
đoạn [r1, r2]. Chúng ta sẽ mở
rộng thành [s1, s2].
Với ((r1- r2) < ((s1- s2)).

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Độ tương phản

Trường hợp đặc biệt 1:


• Nếu r1=s1 và r2=s2, không
thay đổi
• Nếu r1=r2, s1=0 và s2=L-1,
biến đổi này trở thành hàm
ngưỡng hay nhị phân hóa.
• Hữu dụng khi chúng ta chỉ
quan tâm đến hình dạng
của đối tượng và ở mức
xám.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

4
Độ tương phản

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Độ tương phản
Trường hợp đặc biệt 2:
• Gamma correction: S1 = 0, S2 = 1 và

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

5
Nén vùng linh họat

Khi vùng linh hoạt lớn,


chúng g ta cần “nén”
vùng này lại, ví dụ
biến đổi Fourier về
cường độ.
Thông thường dùng tỷ
lệ log.
s = T(r) = c log(1+⏐r⏐)

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Nén vùng linh họat

Chia nhỏ mức xám: Làm nổi bật một vùng đặc
biệt của mức xám.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

6
Nén vùng linh hoạt

Ví dụ:

Ảnh được làm nổi bật


(không nền)

Ảnh ban đầu

Ảnh được làm nổi bật (có


nền)
Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM
2008

Nén vùng linh họat

Chia nhỏ mặt phẳng Bit: Hiển thị các bit khác
nhau các ảnh nhị phân riêng biệt.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

7
Tám mặt
phẳng bit

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Trừ ảnh
Trong trường hợp độ sai khác của hai bức ảnh “tương
đồng” theo công thức:
g(m,n) = f1(m,n)-f2(m,n)
Dùng để phân đoạn ảnh và làm tăng cường ảnh.
•f1(m, n):
Ảnh trước
khi đưa g(m, n):
hóa chất Ảnh sau
vào khi đưa
•f2(m,
f2( n):) hóa chấtấ
Ảnh sau vào , sau
khi đưa khi trừ
hóa chất ảnh
vào X-quang não người bệnh
Trường ĐHKHTN Tp.HCM
Khoa Toán - Tin học 2008

8
Dùng trung bình ảnh để giảm nhiễu
Nhiễu là hiện tượng ngẫu nhiên (không dự đoán
trước được), làm hư ảnh.
Nhiễu xảy ra trong quá trình:
• Thu ảnh
• Truyền ảnh
• Lưu trữ ảnh
Nhiễu có thể mô hình hóa như tiến trình:
g(m,n) = f(m,n) + η(m,n)

Ảnh Ảnh Nhiễu


nhiễu không
nhiễu

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Dùng trung bình ảnh để giảm nhiễu

Nhiễu h(m,n) tại pixel (m,n) được mô hình như một biến
ngẫu nhiên.
Thông thường, h(m,n) xem như là zero-mean và các giá
trị nhiễu tại các pixel khác nhau thì không có tương
quan.
Giả sử chúng ta có M quan sát {gi(m, n)}, i=1,2,…,M,
chúng ta có thể giảm nhiễu (một phần) bằng “tính trung
bình của ảnh”.
1 M
g (m, n ) = ∑ g (m, n )i
M i =1

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

9
Dùng trung bình ảnh để giảm nhiễu

Trong trường hợp này:

E [g (m, n )] = f (m, n )
1
Var [g (m, n )] =
Var [η (m, n )]
M
Hơn nữa, nếu số lượng quan sát tăng (M⎯→∞),
tác động nhiễu sẽ giảm về zero.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Ảnh nhiễu
Ả ễ
Ảnh không nhiễu
Variance = 0.05

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

10
Ví dụ
M =2 M =5 M =10

M =25 M =50 M =100


Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM
2008

Vài bộ lọc trung bình

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

11
Histogram

Histogram của ảnh xám, có các giá trị xám r0, r1, …, rL-1 là
hàm rời rạc
n ⎧ n la
l ø soá löôï
löô ng pixel
i l coù giai ù trò
t ò xam
ù rk
p(rk ) = k , vôùi ⎨ k
n ⎩ n laø toång soá pixel cuûa aûnh
Hàm p(rk) mô tả tỷ lệ tổng số pixel có mức xám rk và tổng
số pixel của ảnh.
Histogram cung cấp một mô tả tổng thể phân bố của ảnh.
Nếu chúng ta xem mức xám trong ảnh như biến ngẫu nhiên
R, mật độ xác suất, thì histogram cung cấp như một xấp xỉ
của mật độ xác suất.
Pr[R=rk] ≈ p(rk)

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Vài hình dạng Histogram

Hình dạng
của một
histogram
cung cấp
thông tin
hữu dụng
cho hiệu
chỉnh độ
tương
phản,
hả làmlà
tăng
cường.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

12
Ví dụ kéo dãn histogram
The original image displayed The histogram of the original image

10000

5000

0
0 0.5 1

The stretched image The stretched histogram

10000

5000

0
0 0.5 1

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Tăng cường ảnh

Ảnh chụp p
từ trên không

a-b
c-d
b-d ảnh kết quả
sau khi dùng
biến đổi với c=1
và γ =3.0, 4.0 và
5.0

13
Hàm so sánh hai histogram

Cân bằng Histogram

Ý tưởng: Tìm một biến


ế đổiổ phi tuyến
ế
g = T(f )
áp dụng cho mỗi pixel của ảnh f(x,y), để g(x,y)
phân phố đều.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

14
Cân bằng Histogram

Chúng ta có giá trị xám r liên tục trong [0,1], r=0 mô tả màu
đen và r=1 mô tả màu trắng.
Chúng ta cần xây dựng một biến đổi s=T(r), s=T(r) trên cơ sở
histogram của ảnh, biến đổi này sẽ làm tăng cường ảnh.
T có các tính chất:
• T(r) là hàm tăng đều với 0≤r≤1
• T(r) ánh xạ từ [0,1] vào [0,1].

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Cân bằng Histogram


Xem xét biến đổi ngược r=T-1(s) và xem như biến đổi ngược này
cũng thỏa hai điều kiện trên.
Xem như giá trị xám của ảnh ban đầu (A) và kết quả (B) như biến
ngẫu nhiên trong [0, 1].
Đặt pin(r) và pout(s) là mật độ xác suất các giá trị xám của A và B.
Nếu biết pin(r) vàT(r), và T-1(s) thỏa điều kiện 1, chúng ta có thể
viết (lý thuyết xác suất):
⎡ dr ⎤
p out (s ) = ⎢ p in (r ) ⎥
⎣ ds ⎦ r = T −1 ( s )
Một cách để tăng cường ảnh là thiết kế một biến đổi T(.)
T( ) ở mức
xám như phân bố không chuẩn trong [0, 1].
pout(s)=1, 0 ≤s≤1

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

15
Cân bằng Histogram

Các vùng của histogram được chỉnh để “cân đối bằng


nhau” trong mức xám. Kỹ thuật này được gọi là
cân bằng histogram (histogram equalization).
r
Xem như là biến đổi s = T (r ) = ∫ p in (w )dw , 0 ≤ r ≤1
CDF (cumulative distribution function) của pin(r) cũng
o

thỏa 2 điều kiện trên.


= pin (r )
Từ phương trình trên ta suy ra, ds
dr

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Cân bằng Histogram


⎡ 1 ⎤
Thì kết quả sẽ là p out (s ) = ⎢ p in (r ) ⎥
⎣ p in (r ) ⎦ r = T −1 ( s )
= [1]r = T −1 ( s ) = 1, for
f 0 ≤ s ≤1

Hàm mật độ xác suất của g là đều mà không quan tâm


f.
Dùng một hàm biến đổi để cân bằng CDF của các giá
trị xám r, của f, chúng ta có thể có một ảnh mới g có
các giá trị xám chuẩn.
chuẩn
Điều này sẽ làm tăng cường ảnh, (tăng vùng linh hoạt).

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

16
Cân bằng Histogram
Rời rạc hóa, ta sẽ có: pin ( rk ) = nk , for 0 ≤ r ≤ 1, vaø 0 ≤ k ≤ L − 1
• L: Tổng số mức xám n
• nk: số lượng pixel ở mức xám rk
• n: Tổng số pixel trong ảnh
CDF sẽ là
k k
sk = T (rk ) = ∑ = ∑ pin (ri ), for 0 ≤ k ≤ L − 1
ni
i =0 n i =0

Cân bằng histogram không phải lúc nào cũng cho kết
quả như mong muốn, chỉ hiệu quả khi histogram bị
dồn lại. Điều này có thể gây ra sai cạnh và vùng, có
thể gây ra nhiễu.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ cân bằng Histogram

Ảnh ban đầu Sau khi cân bằng histogram

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

17
Ví dụ cân bằng Histogram

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Ảnh ban đầu Ảnh sau khi cân bằng


http://www.cs.cmu.edu/~chuck/lennapg/
Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM
2008

18
Ví dụ

Histogram của ảnh ban đầu Histogram của ảnh sau cân bằng

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Ảnh ban đầu Ảnh sau khi cân bằng


Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM
2008

19
Ví dụ

Histogram của ảnh ban đầuHistogram của ảnh sau cân bằng

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Ảnh ban đầu Ảnh sau khi cân bằng


Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM
2008

20
Ví dụ

Histogram của ảnh ban đầu Histogram của ảnh sau cân bằng

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Ảnh ban đầu Ảnh sau khi cân bằng

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

21
Ví dụ

Histogram của ảnh ban đầu Histogram của ảnh sau cân bằng

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Chỉ định dạng Histogram


Cân bằng histogram cung cấp một ảnh có các pixel được
phân bố chuẩn mức xám (theo lý thuyết).
Đôi khi chúng ta không muốn điều này. Thay vì vậy, chúng ta
cần
ầ một biến
ế đổiổ mà cho ta một histogram theo ý mình. Kỹ
thuật này gọi là chỉ định histogram (histogram
specification).
Giả sử ảnh f có mật độ xác suất pin(r). Chúng ta muốn tìm
một biến đổi z=H(r), và mật độ xác suất của g là pout(z).
Áp dụng biến đổi r
s = T (r ) = ∫ pin (w)dw, 0 ≤ r ≤1 (*)
o

để ảnh mới có mật độ xác suất chuẩn.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

22
Chỉ định dạng Histogram
Nếu g có mật độ chuẩn: z
ν = G ( z ) = ∫ pout (w )dw, 0 ≤ z ≤1 (* *)
o

Từ mức xámν chúng g ta có z bằng g biến đổi ngược g z=G-1(ν)).


Nếu thay vì dùng mức xám ν từ (**), chúng ta dùng s từ (*)
(cả hai đều là phân bố chuẩn), thì:
z = H(r) = G-1[T(r)]
sẽ cho ảnh mới có phân bố cụ thể pout(z), từ ảnh có mật
độ pin(r). k
n
sk = T ( rk ) = ∑ i , for 0 ≤ k ≤ L − 1 va vaø
Rời rạc các mức xám, ta có i=0 n
k
ν k = G ( zk ) = ∑ pout ( zi ), for 0 ≤ k ≤ L − 1
i=0

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

23
Chỉ định dạng histogram

Hình dạng của histogram của g không thật sự


chính xác nhưng nó gần giống hình dạng
histogram mà chúng ta muốn

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

ảnh ban đầu và histogram

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

24
Ví dụ

Cân bằng histogram Histogram sau cân bằng

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Ví dụ

Ban đầu Histogram Dạng Histogram


Ảnh sau khi hiệu chỉnh

chỉ định
theo chỉ định Histogram

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

25
Tăng cường ảnh bằng cách dùng
Histogram cục bộ
Tăng cường chi tiết từ các vùng nhỏ của ảnh.
Định nghĩa một hình chữ nhật hay vuông để xem xét láng
giềng, từ tâm di chuyển từng pixel một.
Tính toán histogram cục bộ trên cơ sở chọn láng giềng cho mỗi
điểm và dùng cân bằng histogram và histogram chỉ định cho
pixel ở tâm.
Mặt khác dùng thông tin histogram để tăng cường ảnh là
phương pháp kết hợp thống kê với với histogram (histogram
xem nhưh là hàm
hà mậtật độ xác
á suất).
ất)
Ví dụ, chúng ta có thể dùng trung bình (mean) cục bộ và
phương sai (variance) để xác định độ tượng phản/sáng cục
bộ của một pixel.

Khoa Toán - Tin học Trường ĐHKHTN Tp.HCM


2008

Một số hàm trong Matlab


Tên hàm Mô tả
imread Đọc ảnh từ một file
rgb2gray Chuyển sang ảnh xám
im2double Chuyển kiểu dữ liệu từ nguyên sang thực
fspecial Lọc nhiễu
conv2 Chặp xoắn
imagesc Chuẩn dữ liệu và view
imwrite Ghi ảnh xuống file
imhist Histogram của dữ liệu (ảnh)
histeq Tăng cường độ tương phản bằng cách cân bằng histogram
imadjust Điều chỉnh độ tương phản thấp
Ví dụ
imrgb = imread(‘file.jpg’);
imtemp=rgb2gray(imrgb);
im = im2double(imtemp);
g= fspecial('gaussian', 25,4);
imblur = conv2(im,g,‘same');
imagesc([im imblur])
imagesc([im im+.4*(im-imblur)])
logfilt = fspecial(‘log’,25,4);

26

You might also like