You are on page 1of 33

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.

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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), 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].

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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(.) ở
mức xám như phân bố không chuẩn trong [0, 1].
pout(s)=1, 0 ≤s≤1
Trường ĐHKHTN Tp.HCM
Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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
s = T (r ) = ∫ p in (w )dw , 0 ≤ r ≤1
• Xem như là biến đổi o

• CDF (cumulative distribution function) của pin(r)


cũng thỏa 2 điều kiện trên.
Từ phương trình trên ta suy ra, dr = pin (r )
ds

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 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.
• Điều này sẽ làm tăng cường ảnh, (tăng vùng linh
hoạt).

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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à
kk
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.

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ cân bằng Histogram

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ cân bằng Histogram

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
• Xem xét một bức k rk nk p(rk)=nk/n
ảnh kích thước 0 0 790 0.19
64x64 ở 8 mức 1 1/7 1023 0.25
xám (0, 1, …, 7).
2 2/7 850 0.21
Chuẩn hóa giá trị
3 3/7 656 0.16
xám
4 4/7 329 0.08
(0, 1/7, 2/7, …,
5 5/7 245 0.06
1). Histogram sau
chuẩn hóa như 6 6/7 122 0.03
bảng: 7 1 81 0.02

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
• Áp dụng biến đổi như 0
s0 = T (r0 ) = ∑ pin (ri ) = pin (r0 ) = 0.19 → 1
7
trên, chúng ta có kết i =0
1
quả (sau khi làm s1 = T (r1 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) = 0.44 → 3
i =0
7
tròn): 2
s2 = T (r2 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) + pin (r2 ) = 0.65 → 5
i =0
7

• Chú ý, có duy nhất 5


3
s3 = T (r3 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) + " + pin (r3 ) = 0.81 → 6
i =0
7
giá trị xám rời rạc --- 4
s4 = T (r4 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) + " + pin (r4 ) = 0.89 → 6
(1/7, 3/7, 5/7, 6/7, 1) i =0
7
được gán nhãn là (s0, 5
s5 = T (r5 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) + " + pin (r5 ) = 0.95 → 1
s1, …, s4). i =0
6
s6 = T (r6 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) + " + pin (r6 ) = 0.98 → 1
i =0
7
s7 = T (r7 ) = ∑ pin (ri ) = pin (r0 ) + pin (r1 ) + " + pin (r7 ) = 1.00 → 1
i =0

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
k sk nk p(sk)=nk/n
Ví dụ 0 1/7 790 0.19
• Với biến đổi này 1 3/7 1023 0.25
histogram của g là 2 5/7 850 0.21
3 6/7 985 0.24
• Histogram của g là xấp
xỉ, không chính xác 4 1 448 0.11
hoàn toàn, chuẩn.

Dùng hàm imhist và histeq trong


image processing toolbox

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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


http://www.cs.cmu.edu/~chuck/lennapg/

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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


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

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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.

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 ta có z bằng biến đổi ngược 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ø
• 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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chỉ định dạng Histogram
• Nếu biến đổi zk→G(zk) là 1-1, biến đổi ngược sk→G-1(sk) được xác định dễ
dàng, từ đây chúng ta có thể phân chia với một tập nhỏ các giá trị xám rời
rạc.
• Trong thực tế, zk → G(zk) không phải lúc nào cũng là 1-1, chúng ta phải
thiết lập các giá trị xám phù hợp với histogram có, càng chính xác càng tốt.
• Ví dụ: xem xét ảnh 64x64 ở 8 mức xám
k rk nk p(rk)=nk/n
0 0 790 0.19
1 1/7 1023 0.25
2 2/7 850 0.21
3 3/7 656 0.16
4 4/7 329 0.08
5 5/7 245 0.06
6 6/7 122 0.03
7 1 81 0.02

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
• Xem xét biến đổi z=H(r)= G-1[T(r)], với histogram như
sau:
k zk pout(zk)
0 0 0.00
1 1/7 0.00
2 2/7 0.00
3 3/7 0.15
4 4/7 0.20
5 5/7 0.30
6 6/7 0.20
7 1 0.15

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
• Và G như sau:
Ví dụ 0
ν 0 = G ( z0 ) = ∑ pout (zi ) = pout ( z0 ) = 0.00 → 0
• Biến đổi T(r) như sau: ν = G(z ) = i =0
1

1 1 ∑ p (z ) = p (z ) + p (z ) = 0.00 → 0
i =0
out i out 0 out 1

ri→sk nk p(sk) 2
ν 2 = G ( z2 ) = ∑ pout (zi ) = pout ( z0 ) + pout ( z1 ) + pout (z 2 ) = 0.00 → 0
i =0
r0 → s0 = 1/7 790 0.19 3
ν 3 = G ( z3 ) = ∑ pout ( zi ) = pout ( z0 ) + pout (z1 ) + " + pout (z3 ) = 0.15 → 1 7
r1 → s1 = 3/7 1023 0.25 i =0
4
ν 4 = G ( z4 ) = ∑ pout (zi ) = pout (z0 ) + pout (z1 ) + " + pout (z 4 ) = 0.35 → 2 7
r2 → s2 = 5/7 850 0.21 i =0
5
ν 5 = G (z5 ) = ∑ pout ( zi ) = pout ( z0 ) + pout (z1 ) + " + pout (z5 ) = 0.65 → 5 7
r3,r4 → s3 = 6/7 985 0.24 i =0
6
ν 6 = G ( z6 ) = ∑ pout (zi ) = pout ( z0 ) + pout ( z1 ) + " + pout ( z6 ) = 0.85 → 6 7
r5, r6,r7 → s4=1 448 0.11 i =0
7
ν 7 = G ( z7 ) = ∑ pout (zi ) = pout (z0 ) + pout (z1 ) + " + pout (z7 ) = 1.00 → 1
i =0

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
• Chú ý, G không có G-1. Nhưng chúng ta có thể chọn như sau:
G-1(0) = ? (không quan tâm) G-1(4/7) = ? (không quan tâm)
G-1(1/7) = 3/7 G-1(5/7) = 5/7
G-1(2/7) = 4/7 G-1(6/7) = 6/7
G-1(3/7) = 4/7 (chọn giá trị gần nhất) G-1(1) = 1

r→T(r)=s s→G-1(s)=z r→G-1 [T(r)]=H(r)=z


•Tích hợp T r0 = 0 → 1/7 0→? r0 = 0 → z3= 3/7
và G-1 ta có r1 = 1/7 → 3/7 1/7 → 3/7 r1 = 1/7 → z4= 4/7
H r2 = 2/7 → 5/7 2/7 → 4/7 r2 = 2/7 → z5= 5/7
r3 = 3/7 → 6/7 3/7 → 4/7 r3 = 3/7 → z6= 6/7
r4 = 4/7 → 6/7 4/7 → ? r4 = 4/7 → z6= 6/7
r5 = 5/7 → 1 5/7 → 5/7 r5 = 5/7 → z7= 1
r6 = 6/7 → 1 6/7 → 6/7 r6 = 6/7 → z7= 1
r7 = 1 → 1 1→ 1 r7 = 1 → z7= 1
Trường ĐHKHTN Tp.HCM
Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
• Áp dụng H ta có:
nk/n pout(zk)
k zk nk
(hist. thật sự) (hist. cần)
0 0 0 0.00 0.00
1 1/7 0 0.00 0.00
2 2/7 0 0.00 0.00
3 3/7 790 0.19 0.15
4 4/7 1023 0.25 0.20
5 5/7 850 0.21 0.30
6 6/7 985 0.24 0.20
7 1 448 0.11 0.15

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

ảnh ban đầu và histogram

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

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

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ

Dạng Histogram chỉ định


Ban đầu Histogram
Ảnh sau khi hiệu chỉnh
theo chỉ định Histogram

Trường ĐHKHTN Tp.HCM


Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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ư là hàm mật độ xác suấ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.
Trường ĐHKHTN Tp.HCM
Khoa Toán - Tin học 2007

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like