Tải bản đầy đủ (.pdf) (19 trang)

Kỹ thuật tách biên ảnh mầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (229.82 KB, 19 trang )

TÁCH BIÊN ẢNH MÀU

1
TÁCH BIÊN ẢNH MÀU

I. Cơ sở lý thuyết tách biên
Tách biên là phương pháp thông dụng nhất để tách theo nghóa gián đoạn trong các
giá trò cường độ. Sự gián đoạn được tách sử dụng đạo hàm bậc nhất và bậc hai.
Đạo hàm bậc nhất lựa chọn trong xử lý ảnh là gradient (độ dốc). Gradient của hàm
2-D
),( yxf
được đònh nghóa dưới dạng vectơ


























y
f
x
f
G
G
f
y
x

Biên độ của vectơ này:

 
   
 
2/1
22
2/1
22
//)( yfxfGGfmagf
yx


Để tính toán đơn giản, con số này được xấp xỉ bằng cách sử dụng giá trò tuyệt đối


yx
GGf


Xấp xỉ này vẫn còn dưới dạng các đạo hàm: đó là, chúng bằng 0 trong các vùng có
cường độ không đổi, và giá trò chúng tỷ lệ với bậc của sự thay đổi cường độ trong
vùng có các giá trò pixel biến thiên. Nó được xem là biên độ của gradient hoặc xấp
xỉ đơn giản của nó dưới dạng “gradient”.
Đặc tính cơ bản của vectơ gradient là các điểm của nó là hướng có tỷ lệ thay đổi
hàm
f
tại tọa độ
),( yx
lớn nhất. Góc xảy ra tỷ lệ thay đổi lớn nhất là:











x
y
G
G

yx
1
tan),(

Một trong những phương pháp then chốt đưa ra là ước đoán đạo hàm
x
G

y
G

theo phương pháp số. Các phương pháp khác nhau được dùng bởi hàm edge được
thảo luận sau trong phần này.
Đạo hàm bậc hai trong xử lý ảnh được tính sử dụng toán tử Laplace. Toán tử
Laplace của hàm 2-D
),( yxf
được cho dưới dạng vi phân bậc hai như sau:

2
2
2
2
2
),(),(
),(
y
yxf
x
yxf
yxf








Toán tử Laplace ít khi được dùng để tách biên vì, vi phân bậc hai, dễ bò ảnh hưởng
bởi nhiễu, biên độ của nó sinh ra các biên kép, và không thể tách hướng biên. Tuy
nhiên , toán tử Laplace có thể là phần bổ sung mạnh khi sử dụng kết hợp với kỹ
thuật tách biên khác. Ví dụ, mặc dù các biên kép không thích hợp để tách biên trực
tiếp, đặc tính này có thể dùng để đònh vò biên.
Ý tưởng cơ bản đằng sau tách biên là tìm các nơi trong ảnh có cường độ thay đổi
nhanh, sử dụng một trong hai tiêu chuẩn tổng quát sau:
TÁCH BIÊN ẢNH MÀU

2
Tìm các nơi đạo hàm bậc nhất của cường độ sáng có biên độ hơn một
ngưỡng.
Tìm các nơi đạo hàm bậc hai của cường độ sáng có chỗ chéo 0.
Các hàm biên của IPT (Image Processing Toolbox) cung cấp một số ước lượng đạo
hàm dựa trên các tiêu chuẩn mới nói tới. Đối với một số trong những ước lượng
này, có thể xác đònh bộ tách biên có nhạy với các biên ngang hay biên dọc hay
không hoặc cả hai. Cấu trúc tổng quát của hàm này là
[g, t] = edge (f, ‘method’, parameters)
Trong đó f là ảnh đầu vào, method là một trong các phương pháp được liệt kê trong
bảng 1, và parameters là các tham số thêm vào được giải thích sau. Trong ngõ ra, g
là mảng logic với các giá trò 1 tại các vò trí các điểm biên được tách và 0 khi không
được tách. Tham số t là tùy chọn, nó cho ngưỡng được dùng bởi biên để xác đònh
các giá trò gradient đủ mạnh để được gọi là các điểm biên.

Bảng 1
Bộ tách biên Các đặc tính cơ bản
Sobel

Tìm biên dùng xấp xỉ Sobel với đạo hàm cho trong hình
1(b)
Prewitt
Tìm biên dùng xấp xỉ Prewitt với đạo hàm cho trong
hình 1(c)
Roberts
Tìm biên dùng xấp xỉ Roberts với đạo hàm cho trong
hình 1(d)
Laplacian of a
Gaussian (LoG)

Tìm biên bằng cách tìm điểm chéo 0 sau khi lọc qua bộ
lọc Gauss
Zero crossings
Tìm biên bằng cách tìm điểm chéo 0 sau khi lọc qua bộ
lọc được xác đònh bởi người sử dụng
Canny
Tìm biên bằng cách tìm các cực đại đòa phương của
gradient
),( yxf
. Gradient được tính toán dùng đạo hàm
của bộ lọc Gauss. Phương pháp dùng hai ngưỡng để
tách các biên mạnh và yếu, và gộp các biên yếu ở ngõ
ra chỉ khi chúng được kết nối với các biên mạnh. Do đó,
phương pháp này thích hợp hơn để tách các biên yếu
thật sự.







TÁCH BIÊN ẢNH MÀU

3
I.1.Bộ tách biên Sobel

Bộ tách biên Sobel sử dụng các mặt nạ trong hình 1(b) để xấp xỉ đạo hàm bậc nhất
x
G

y
G
. Nói cách khác, gradient tại điểm tâm trong một lân cận được tính theo
bộ tách Sobel:
 
2/12
741963
2
321987
2/1
22
})]2()2[()]2()2{[(
zzzzzzzzzzzzGGg
yx



Khi đó, ta nói rằng vò trí (x,y) là pixel biên nếu
Tg

tại vò trí đó, trong đó
T

một ngưỡng được chỉ đònh.

z
1
z
4
z
7
z
2
z
3
z
6
z
9
z
8
z
5
Image neighborhood



-1 2 -1
0 0 0
11
1
-1
0
1
-2
0
2
1
0
-1
Sobel

)2()2(
321987
zzzzzzG
x


)2()2(
741963
zzzzzzG
y



-1 -1
0 0 0

11
1
-1
0
1
-1
0
1
1
0
-1
-1
Prewitt


)()(
321987
zzzzzzG
x


)()(
741963
zzzzzzG
y



0
0

-1
1
0
0
1
-1
Roberts


59
zzG
x


68
zzG
y


Hình 1. Một số mặt nạ tách biên và đạo hàm bậc nhất chúng hiện thực
TÁCH BIÊN ẢNH MÀU

4
Bộ tách biên Sobel có thể được thực hiện bằng cách lọc một ảnh, f, (dùng imfilter)
với mặt nạ bên trái trong hình 1(b), lọc lại f với mặt nạ khác, bình phương các giá
trò pixel với mỗi ảnh được lọc, cộng hai kết quả, và tính căn bậc hai. Các chú thích
tương tự đối với các phần thứ 2 và thứ 3 trong bảng 1. Hàm edge đơn giản các gói
toán tử trước thành một hàm gọi và thêm vào các dặc tính khác, chẳng hạn như
chấp nhận một giá trò ảnh ngưỡng hoặc xác đònh ngưỡng một cách tự động. Thêm
vào đó, edge chứa các kỹ thuật tách biên không hiện thực trực tiếp được bằng

imfilter
Cú pháp gọi bộ tách Sobel tổng quát là
[g , t ] = edge(f, ‘sobel’, T, dir)
Trong đó f là ảnh đầu vào, T là ngưỡng được chỉ đònh và dir xác đònh hướng cần
tính tách biên: ‘ngang’, ‘dọc’ hoặc cả hai. Như đã nói, g là ảnh logic chứa giá trò 1
tại những nơi biên được tách và giá trò 0 tại những nơi biên được tách. Tham số t
trong ngõ ra là tùy chọn. Nó là giá trò ngưỡng được dùng bởi edge. Nếu T dược chỉ
đònh thì t = T. Mặt khác nếu T không được chỉ đònh (hoặc để rỗng []), f sẽ đặt t
bằng với ngưỡng do nó tự động xác đònh và sau đó sử dụng cho việc tách biên. một
trong những lý do cơ bản cho việc gộp t trong tham số ngõ ra là để nhận giá trò khởi
tạo cho ngưỡng. Hàm edge sử dụng bộ tách Sobel mặc đònh nếu cú pháp
g = edge (f), hoặc là [g, t] = edge(f).

I.2.Bộ tách biên Prewitt

Bộ tách biên Prewitt sử dụng mặt nạ trong hình 1(c) để xấp xỉ theo phương pháp số
đạo hàm bậc nhất
x
G

y
G
. Cú pháp gọi tổng quát là:
[g , t ] = edge(f, ‘prewitt’, T, dir)
Tham số hàm này đồng nhất với tham số Sobel. Bộ tách Prewitt hơi đơn giản hơn
để hiện thực bằng máy tính so với bộ tách Sobel, nhưng nó có khuynh hướng sinh
ra một chút nhiễu. (Nó có thể được thể hiện qua hệ số 2 trong bộ tách biên làm
trơn)

I.3.Bộ tách biên Roberts


Bộ tách biên Roberts sử dụng mặt nạ trong hình 1(d) để xấp xỉ theo phương pháp
số đạo hàm bậc nhất
x
G

y
G
. Cú pháp gọi tổng quát là:
[g , t ] = edge(f, ‘roberts’, T, dir)
Tham số hàm này đồng nhất với tham số Sobel. Bộ tách Roberts là một trong
những bộ tách biên xưa nhất trong xử lý ảnh số và theo hình 1(d), nó cũng đơn giản
nhất. Bộ tách biên này được dùng ít hơn đáng kể các bộ tách khác do chức năng
giới hạn của nó (ví dụ, nó không đối xứng và không thể được tổng quát hóa để tách
TÁCH BIÊN ẢNH MÀU

5
biên là thừa số của 45
0
). Tuy nhiên, nó vẫn được dùng thường xuyên trong hiện
thực phần cứng khi tính đơn giản và tốc độ là các yếu tố chi phối.

I.4.Bộ tách biên Laplace của hàm Gauss (LoG)

Xét hàm Gauss

2
2
2
)(


r
erh



Trong đó
222
yxr



là độ lệch chuẩn. Đây là hàm trơn, nếu nó chập với
một ảnh, sẽ làm mờ ảnh. Độ mờ được xác đònh bởi giá trò

. Toán tử Laplace của
hàm này (đạo hàm bậc 2 theo r):

2
2
2
4
22
2
)(



r
e

r
rh










Với những lý do rõ ràng, hàm này gọi là toán tử Laplace của hàm Gauss (LoG). Vì
đạo hàm bậc hai là toán tử tuyến tính, chập (lọc) với một ảnh bằng
)(
2
rh

giống
như đầu tiên chập ảnh với hàm trơn và sau đó tính kết quả của toán tử Laplace.
Đây là chìa khóa khái niệm cơ bản của bộ tách LoG. Chúng ta chập ảnh bằng
)(
2
rh

biết nó có 2 tác động: nó làm mòn ảnh (do đó giảm nhiễu) và nó tính toán
tử Laplace, làm cong một ảnh biên kép. Đònh vò các biên sau đó tìm các điểm giao
zero giữa các biên kép. Cú pháp gọi tổng quát là:
[g , t ] = edge(f, ‘log’, T, sigma)
Trong đó sigma là độ lệch chuẩn và các tham số còn lại giống phần trước. Giá trò

mặc đònh của sigma là 2. Như đã nói, bỏ qua bất cứ biên nào không lớn hơn T. Nếu
T không được cho, hoặc rỗng [ ], edge chọn giá trò một cách tự động. Đặt T từ 0 tạo
các biên là các đường viền kín, một đặc tính quen thuộc của phương pháp LoG.

I.5.Bộ tách biên điểm giao zero

Bộ tách biên này dựa trên khái niệm giống phương pháp LoG, nhưng phép chập
được thực hiện sử dụng hàm lọc được chỉ đònh H. Cú pháp gọi hàm
[g , t ] = edge(f, ‘zerocross’, T, H)
Các tham số khác được giải thích như bộ tách LoG




TÁCH BIÊN ẢNH MÀU

6
I.6.Bộ tách biên Canny

Bộ tách biên Canny (Canny [1986]) là bộ tách biên mạnh nhất cung cấp bởi hàm
edge. Có thể tóm tắt phương pháp này như sau:
1. Ảnh được làm trơn sử dụng một bộ lọc Gauss với độ lệch chuẩn

, để
giảm nhiều
2. Gradient cục bộ,
 
2/1
22
),(

yx
GGyxg 
và hướng biên
)(tan),(
1
x
y
G
G
yx


, được tính toán tại mỗi điểm. Một trong 3 kỹ thuật
đầu trong bảng 10.1 để tính
x
G

y
G
. Một điểm biên được đònh nghóa là
điểm có độ dài là cực đại đòa phương theo hướng của gradient.
3. Điểm biên được xác đònh (2) tăng lên đến các đỉnh trong gradient biên độ
ảnh. Sau đó thuật toán tìm đỉnh của các đỉnh này và đặt giá trò 0 vào tất cả
pixel không thật sự nằm trên đỉnh vì vậy tạo ra một đường mỏng ở ngõ ra,
một quá trình được biết là sự nén lại không cực đại. Các pixel đỉnh được
đặt ngưỡng dùng hai ngưỡng,
1
T

2

T
. Các pixel đỉnh lớn hơn
2
T
được gọi
là các pixel biên “mạnh”. Các pixel đỉnh nằm giữa
1
T

2
T
được gọi là
các pixel biên “yếu”.
4. Cuối cùng, thuật toán thực hiện biên kết nối bằng cách kết hợp các pixel
yếu mà có dạng kết nối-8 với các pixel mạnh.

Cú pháp bộ tách biên Canny là:
[g , t ] = edge(f, ‘canny’, T, sigma)
Trong đó T là một vectơ,
 
21
TTT

là 2 ngưỡng được giải thích trong bước
3 của thủ tục trước và sigma là độ lệch chuẩn của bộ lọc làm trơn. Nếu t gộp
vào thông số ngõ ra, nó là vectơ 2 phần tử chứa 2 giá trò ngưỡng được dùng
bởi thuật toán. Cú pháp đơn giản được giải thích như các phương pháp khác,
bao gồm việc tự động tính toán T nếu nó không được cung cấp. Giá trò mặc
đònh của sigma là 1.


TÁCH BIÊN ẢNH MÀU

7
II.Cơ sở tách biên ảnh màu

II.1. Đặc tính ảnh màu trong Matlab

Công cụ xử lí ảnh màu trong Matlab thực hiện hai kiểu ảnh màu hoặc là indexed
images hoặc là RGB images.

II.1.1 Ảnh RGB

Ảnh RGB là một mảng pixel màu M x N x 3. Mỗi pixel màu là sự kết hợp của ba
thành màu red, green và blue của ảnh màu tại một vò trí không gian bất kì (xem
hình 2).

Hình 2. Cách mà những pixels của một ảnh RGB được hình thành từ
các pixels của ba ảnh thành phần

Một ảnh RGB có thể được xem như là sự sắp xếp của ba ảnh mức xám mà khi cho
vào các ngõ vào red, green và blue của một màn hình màu sẽ tạo ra một ảnh màu
trên màn hình. Ba ảnh được hình thành từ một ảnh màu RGB là các ảnh thành phần
red, green và blue. Lớp dữ liệu của các ảnh thành phần xác đònh miền giá trò của
chúng. Nếu một ảnh RGB thuộc lớp double thì miền giá trò là [0, 1]. Tương tự ta có
miền giá trò là [0, 255] hoặc [0, 65535] tương ứng với các ảnh màu RGB thuộc lớp
uint8 hoặc uint16. Số lượng bit được sử dụng để đại diện cho các giá trò pixel của
những ảnh thành phần xác đònh chiều sâu bit của một ảnh RGB. Ví dụ mỗi ảnh
thành phần là một ảnh 8 bit suy ra ảnh RGB tương ứng sẽ là 24 bit. Nói chung số
bit trong các ảnh thành phần là như nhau. Số màu có thể có trong một ảnh RGB là

×