Tải bản đầy đủ
3 Một số phương pháp xử lý ảnh

3 Một số phương pháp xử lý ảnh

Tải bản đầy đủ

Đây là một kỹ thuật khá đơn giản: để tăng thêm độ sáng, tất cả các Pixel của
ảnh cần được cộng thêm giá trị điều chỉnh vào mọi kênh màu RGB. Tuy kỹ thuật
này đơn giản nhưng nó đem lại hiệu quả khá cao và rất hay được sử dụng trong
lĩnh vực xử lý ảnh. Nó giúp ích rất nhiều trong các ngành như y học, địa lý, quân
sự,... trong việc phân tích và nhận dạng.
Ở đây điều chỉnh Brightness không chỉ được sử dụng để làm sáng lên những
ảnh tối mà còn được sử dụng để làm tối đi các ảnh sáng. Một ảnh sáng hoàn toàn
đơn giản là tất cả các Pixel đều màu trắng trong khi một ảnh tối tất cả các Pixel
đều màu tối. Sự khác nhau duy nhất trong làm tối một ảnh là trừ đi giá trị điều
chỉnh vào mỗi kênh màu R - G - B của ảnh.
Đối với mỗi kênh màu, chúng chỉ nhận các giá trị [0..255]. Chính vì thế khi
tăng cường hay giảm độ sáng của một ảnh ta phải chú ý đến ngưỡng của các
kênh. Điều đó có nghĩa là với mỗi kênh màu của một Pixel nếu nhỏ hơn 0 thì ta
phải gán bằng 0 và nếu lớn hơn 255 thì ta phải gán bằng 255.
Biểu thức cho kỹ thuật Brightness có dạng:
g(x,y) = f(x,y) + b
Trong đó b là hằng số cộng thêm vào giá trị màu f(x,y). Độ sáng của ảnh tăng
nếu b > 0, và giảm bớt nếu b < 0.
Thuật toán chung được miêu tả bằng :
If (Brightness = True) Then // Tăng độ sáng
NewValue = OldValue + Adjustment;
Else NewValue = OldValue - Adjustment; // Giảm độ sáng
If (NewValue < ValueMin) Then NewValue = ValueMin;
If (NewValue > ValueMax) Then NewValue = ValueMax;
Để cho thuật giả này nhanh hơn, chúng ta phân ra hai mức làm sáng

10

(Lightening) và làm tối (Darkening). Việc phân ra làm hai mức là có hai lý do.
Thứ nhất là khi làm sáng ảnh thì không phải kiểm tra nếu giá trị màu dưới 0 và
khi làm tối ảnh cũng không phải kiểm tra nếu giá trị màu trên 255. Lý do thứ hai
quan trọng hơn. Đó là một Byte chỉ giữ những giá trị giữa 0 và 255. Mà phạm vi
điều chỉnh màu lại nằm trong [-255..255]. Điều đó có nghĩa là nếu chúng ta
không phân ra làm hai mức thì giá trị điều chỉnh màu phải là Int và khi đó việc
xử lý tốn thêm thời gian sau mỗi vòng lặp.
Thuật toán trên có thể được cải tiến như sau:
If (Brightness = True) Then
NewValue = OldValue + Adjustment;
If (NewValue > 255) Then NewValue = 255;
Else

// Brightness=False

NewValue = OldValue - Adjustment;
If (NewValue < 0) Then NewValue = 0;
Với biến điều chỉnh màu Adjustment được khai báo kiểu Byte.

(a)

(b)

(c)

Hình 4: Ảnh gốc (a); ảnh đã giảm độ sáng (b); ảnh đã được tăng cường độ sáng
(c).

11

Sử dụng giải thuật này, ta có kết quả như trong hình 4. Ta nhận thấy rằng
những điểm đã sáng trắng trong ảnh gốc không được làm sáng hơn và các điểm
đã tối đen trong ảnh gốc cũng không được làm tối hơn.
1.3.2 Tăng giảm độ tương phản
Độ tương phản (Contrast) thể hiện sự thay đổi cường độ sáng của đối
tượng so với nền, hay nói cách khác, độ tương phản là độ nổi của điểm ảnh hay
vùng ảnh so với nền.
Ảnh số là tập hợp các điểm, mà mỗi điểm có giá trị độ sáng khác nhau. Ở đây,
độ sáng để mắt người dễ cảm nhận ảnh song không phải là quyết định. Thực tế
chỉ ra rằng hai đối tượng có cùng độ sáng nhưng đặt trên hai nền khác nhau sẽ
cho cảm nhận khác nhau. Vì vậy ta có thể thay đổi độ tương phản của ảnh sao
cho phù hợp.
Việc làm tăng độ tương phản rất hữu ích khi tiến hành xử lý trước theo
phương pháp phân ngưỡng. Bằng việc làm tăng độ tương phản, sự khác nhau của
giá trị nền và đối tượng, độ dốc của cạnh đối tượng được tăng lên. Do đó sau khi
làm tăng độ tương phản ta có thể tìm các giá trị màu thích hợp với một vùng sáng
hơn.
Trong một ảnh có độ tương phản cao, có thể xác định được các viền rõ ràng và
chi tiết khác nhau của ảnh đó được nổi bật. Còn trong một ảnh có độ tương phản
thấp, tất cả các màu đều gần như nhau gây khó khăn cho việc xác định các chi
tiết của ảnh.
Hình sau mô tả việc tăng và giảm độ tương phản đối với ảnh gốc.

(a)

(b)

(c)
12

Hình 5: (a) Ảnh gốc; (b) Ảnh đã giảm độ tương phản; (c) Ảnh đã tăng độ tương
phản.

Biểu thức cho kỹ thuật Contrast có dạng:
g(x,y) = af(x,y)

(3.3)

Trong đó a là hằng số nhân vào giá trị màu tại f(x,y). Độ sáng của ảnh tăng
nếu a > 1, và giảm bớt nếu a < 1.
Thuật toán được miêu tả như sau :
NewValue=OldValue/255; // Biến đổi đến một phần trăm
NewValue=NewValue - 0.5;
NewValue=NewValue*ContrastValue; //ContrastValue thuộc [-1,1]
NewValue=NewValue + 0.5;
NewValue=NewValue*255;
If (NewValue > 255) Then NewValue = 255;
If (NewValue < 0) Then NewValue = 0;
Biểu thức Brightness và Contrast có thể được kết hợp lại để có được biểu
thức sau:
g(x,y) = af(x,y) + b

(*)

Từ biểu thức (*) có thể điều chỉnh cả giá trị Brightness và Contrast.
1.3.3 Tách ngưỡng
Ta chọn hai mức Thấp - Min, Cao - Max và giá trị ngưỡng λ, khi đó giá trị
các pixel được định nghĩa lại như sau:
+ Inew(x, y) = Max nếu I(x, y) >= λ
+ Inew(x, y) = Min nếu I(x, y) < λ
Ví dụ ảnh phân ngưỡng theo 2 mức giá trị màu 0 và 255:

13

(a)

(b)
Hình 6: (a):ảnh xám. (b):ảnh đen trắng

1.3.4 Phép giãn ảnh đa cấp xám
1.3.4.1 Định nghĩa
Với ảnh đa cấp xám IMxN, THxK là mẫu. Gọi R là ảnh kết quả của của phép
giãn ảnh I bởi mẫu T. Khi đó R có kích thước (M+H-1, N+K-1) và được xác định
như sau:
+ I(x, y) = 0 với x= -(H-1) . .-1 hoặc M .. M+H-2; y = -(K-1) . .-1 hoặc N ..
N+K-2
+ R(x, y) = Max {I(x-i, y-j)+T(i,j)} với i = 0..H-1; j = 0..K-1; x=0.. M+H-1;
y=0..N+K-1
1.3.4.2 Thuật toán

VD: Cho ảnh I và mẫu T
như sau:
2 2 2

1 2

2

4 2

3 4

2

2 2

14

B1: Thêm các Pixel có mức xám = 0 vào xung quanh biên I sao cho kích
thước của ảnh là (M+2*H-2)x(N+2*K-2).
0 0 0 0 0
2 2 2

0 2 2 2 0

2 4 2

0 2 4 2 0

2 2 2

0 2 2 2 0
0 0 0 0 0

1

2

4 3

1 2 3

8 7 6

3

4

2 1

4 0 5

5 0 4

T’

6 7 8

3 2 1

T

B2: Quay mẫu T đi 180o được T’
B3: Dịch chuyển mẫu T’ trên ảnh I theo trật tự từ trên xuống dưới, từ trái sang
phải sao cho pham vi mẫu của T’ nằm trong ảnh I. Ở mỗi lần dịch chuyển, pixel
ảnh kết quả tương ứng có mức xám bằng giá trị lớn nhất của tổng các cặp pixel
của mẫu T’ và ảnh I tương ứng. Kết quả thu được có thể giảm đi cùng một giá trị
xám thích hợp.

15

0 0 0 0 0

4 4 4 4

2 2 2 2

0 2 2 2 0

4 6 6 6

2 4 4 4

0 2 4 2 0

4 6 8 8

2 4 6 6

0 2 2 2 0

4 6 8 8

2 4 6 6

0 0 0 0 0

1.3.5 Các tác động ảnh xám cục bộ
1.3.5.1 Tác động nhân chập ảnh
Phép nhân chập được định nghĩa như sau:
+k

+k

∑∑

A=C**B= c1

i =− k j =− k

C(i,j).B(x-i, y-j) + c0

Trong đó: c1 là hằng số để chia thang, c0 là hằng số cộng thêm vào; c0, c1 =
[0, 255]
: C là ma trận mặt nạ để thực hiện phép nhân chập. C thường có
kích thước (2k+1)x(2k+1).
Phép nhân chập có các tác dụng sau:
+ Loại bỏ điểm mép, ở bộ lọc (2k+1)x(2k+1) xuất hiện một mép
với độ rộng là k.
+ Sao chép mép ảnh cũ sang ảnh mới.
+ Kế tiếp các ảnh một cách tuần hoàn và tạo ra một tín hiệu tuần
hoàn.
+ Giảm các tín hiệu nhiễu.
1.3.5.2 Các phương pháp lọc-làm nhẵn
Trong nhiều lĩnh vực kỹ thuật, nhiễu đóng vai trò chủ yếu gây nên những
khó khăn khi ta cần phân tích một tín hiệu nào đó, cũng không loại trừ tín hiệu
16

ảnh. Giữa một ảnh thực và ảnh số hoá thu nhận được khác nhau khá nhiều vì có
nhiều quá trình can thiệp vào. Nguyên nhân là do nhiễu điện tử của máy thu hay
chất lượng kém của bộ số hoá. Ta xem xét biến nhiễu thể hiện trên ảnh thế nào.
Giả sử ảnh là một miền có mức xám đồng nhất, như vậy các phần tử của ma trận
biểu diễn ảnh sau quá trình số hoá phải có cùng giá trị. Nhưng thực tế quan sát ta
thấy: gần giá trị trung bình của mức xám có những phần tử trội lên khá nhiều. Đó
chính là hiện tượng nhiễu. Như vậy nhiễu trong ảnh số được xem như sự dịch
chuyển nhanh của tín hiệu thu nhận (tín hiệu ảnh I[m,n]) trên một khoảng cách
ngắn). Xem xét một cách tương đương trong không gian tần số, nhiễu ứng với
các thành phần tần số cao trong ảnh. Do vậy, người ta nghĩ đến việc biến đổi có
tính đến ảnh hưởng của các phần tử lân cận bằng cách lấy “tổ hợp” các điểm lân
cận này (trong không gian thực) hay lọc các thành phần tần số cao (trong không
gian tần số). Đây chính là kỹ thuật lọc (filtering). Cơ sở lý thuyết của kỹ thuật lọc
số là dựa trên tính dư thừa thông tin không gian: các pixel lân cận có thể có cùng
hoặc gần cùng một số đặc tính. Hơn nữa, nhiễu có thể coi như sự đột biến của
một điểm ảnh so với các điểm lân cận.
Trong kỹ thuật này, người ta sử dụng một mặt nạ và di chuyển khắp ảnh
gốc. Tuỳ theo cách tổ hợp điểm đang xét với các điểm lân cận mà ta có kỹ thuật
lọc tuyến tính hay phi tuyến. Điểm ảnh chịu tác động của biến đổi là điểm ở tâm
mặt nạ.
1.3.5.3 Bộ lọc phi tuyến
Trong kỹ thuật lọc tuyến tính, ảnh thu được sẽ là tổng trọng số hay là
trung bình trọng số các điểm lân cận với nhân cuộn hay mặt nạ. Vì có nhiều loại
nhiễu can thiệp vào quá trình xử lý ảnh nên cần có nhiều bộ lọc thích hợp. Để
làm trơn nhiễu ta sử dụng các mặt nạ thông thấp. VD:

0

1

0

1

1

1

1

17

1

1

1

2

1

1

1

1

1

1

1

1

2

1

2

4

2

0

1

0

1

1

1

1

1

1

1

2

1

Bộ

lọc

A. vùng lận

B. vùng lân

C. vùng lân

D.

cận 5 điểm

cận 9 điểm

cận 9 điểm

Gauss cho 9

không

cân bằng

điểm

cân

bằng

Lọc tuyến tính ngoài làm trơn nhiễu còn có thể trích chọn biên (nổi biên). Dễ
dàng nhận thấy rằng biên là điểm có độ biến thiên nhanh về giá trị mức xám.
Theo quan điểm về tần số tín hiệu, các điểm biên ứng với các thành phần tần số
cao. Do vậy, ta có thể dùng bộ lọc thông cao để cải thiện: lọc các thành phần tần
số thấp và chỉ giữ lại thành phần tần số cao. Vì thế, lọc thông cao thường được
dùng làm trơn biên trước khi tiến hành các thao tác với biên ảnh. Dưới đây là một
số mặt nạ dùng trong lọc thông cao:

-1
-1
-1

-1
9
-1

-1
-1
-1

0
-1
0

-1
5
-1

0
-1
0

Các nhân chập thông cao thông thường có đặc tính chung là tổng các hệ
số của bộ lọc bằng 1. Nguyên nhân chính là ngăn cản sự tăng quá giới hạn của
các giá trị mức xám (các giá trị điểm ảnh vẫn giữ được giá trị của nó một cách
gần đúng không thay đổi quá nhiều với giá trị thực).
1.3.5.4 Lọc phi tuyến
Khác với lọc tuyến tính, kỹ thuật lọc phi tuyến coi một điểm ảnh kết
quả không phải là tổ hợp tuyến tính của các điểm lân cận. Người ta thường sử
dụng 3 bộ lọc đó là: trung vị, giả trung vị và lọc ngoài

18

a) Lọc trung vị
Điểm ảnh đầu vào sẽ được thay thế bằng trung vị các điểm ảnh. Kỹ thuật này
đòi hỏi giá trị các điểm ảnh phải được sắp theo thứ tự tăng hay giảm dần. Kích
thước của sổ cũng được chọn (2k+1)x(2k+1). Lọc trung vị có tác dụng sau:
+ Hữu ích cho việc loại bỏ các điểm ảnh hay các hàng mà vẫn bảo toàn độ
phân giải.
+ Hiệu quả giảm các điểm nhiễu trong cửa sổ lớn hơn hoặc bằng một nửa số
điểm trong cửa sổ.
b) Lọc giả trung vị
Lọc giả trung vị tương tự như lọc trung vị nhưng giá trị được thay thế sẽ là
trung bình cộng của hai giá trị lớn nhất và nhỏ nhất trong mặt nạ
Value = [ValueMin + ValueMax]/2.
c) Lọc ngoài
Giả sử có một ngưỡng xám cho các mức nhiễu tức là các giá trị vượt quá mức
này thi coi là nhiễu. Khi đó với các điểm nhiễu sẽ được thay thế bằng giá trị
trung bình của các điểm lân cận nó theo một cửa sổ có tâm trùng với điểm ảnh
đầu vào, thường là (2k+1)x(2k+1). Điều quan trọng ở đây đó là xác định ngưỡng
xám.
1.3.6 Phép co ảnh đa cấp xám
1.3.6.1 Định nghĩa
Với ảnh đa cấp xám IMxN, THxK là mẫu. Gọi R là ảnh kết quả của của phép
co ảnh I bởi mẫu T. Khi đó R có kích thước (M+1-H, N+1-K) và được xác định
như sau:
+ R(x, y) = Min {I(x+i, y+j)-T(i,j)} với i = 0..H-1; j = 0..K-1; x=0.. M+1-H;
y=0..N+1-K

19

1.3.6.2 Thuật toán
B1: Dịch chuyển mẫu T trên ảnh I theo trật tự từ trên xuống dưới và từ trái
sang phải sao cho mẫu T nằm trong ảnh I. Ở mỗi lần dịch chuyển, pixel ảnh kết
quả tương ứng có mức xám bằng giá trị nhỏ nhất của hiệu cặp giá trị pixel ảnh I
và mẫu T.
B2: Lặp lại B1 cho đến hết ảnh I.
B3: Mức xám pixel ảnh có kết quả âm, có 2 cách khắc phục:
+ Đặt các giá trị âm thành 0.
+ Biến đổi tổng thể mức xám: tìm giá trị xám nhỏ nhất p trong ảnh và
cộng tất cả các giá trị xám lên p để mức chênh lệch giữa các pixel là không đổi.
1.3.7 Các phép biến đổi hình học
1.3.7.1 Phép dịch ảnh
Là sự tịnh tiến gốc tọa độ, trong đó các trục của tọa độ sau phép biến đổi
sẽ di chuyển theo cùng hướng, việc phân chia thang trên tọa độ là không đổi. Gốc
tọa độ cũ (-tx, -ty) thì tọa độ (x’, y’) được tính như sau:
x’ = x +tx
y’ = y +ty
Phép biến đổi có thể được mô tả dưới định thức sau:

1

0

0

0

1

1

tx

ty

1

T =

20