Xem mẫu
- Đ ẠI H ỌC QUỐC GIA H À NỘI
KHOA C ÔNG NGHỆ
TIỂU LUẬN
MÔN HỌC XỬ LÝ ẢNH
Đề tài
Biên và các phương pháp dò biên ảnh
Ngưòi thực hiện: Trần Quang Duy
Lớp: K10T3
HÀ NỘI – 06/2004
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
MỤC LỤC
Phần 1 TỔNG QUAN VỀ BIÊN VÀ CÁC PHƯƠNG PHÁP PHÁT HIỆN BIÊN .................. 3
1.1. Vị trí của bi ên trong phân tích ảnh........................................................................................ 3
1.2. Biên và các kỹ thuật dò biên ................................................................................................ 3
1.2.1. Khái ni ệm về biên ................................................................................................ .................... 3
1.2.2. Phân loại các kỹ thuật phát hiện biên ....................................................................................... 4
1.2.3. Qui trình phát hi ện biên trực tiếp .............................................................................................. 4
1.3. Một số phương pháp phát hiện bi ên cục bộ ......................................................................... 5
1.3.1. Phương pháp gradient ................................................................ ................................ ............. 5
1.3.2. Phương pháp Laplace ............................................................................................................ 7
1.4. Các phương pháp do biên gián tiếp (phân vùng ảnh) .......................................................... 8
1.4.1. Gi ới thiệu ................................................................................................................................. 8
Phần 2 CHƯƠNG TRÌNH ỨNG DỤNG ............................................................................. 9
2.1. Gi ới thiệu ............................................................................................................................. 9
2.2. Các chức năng trong chương trình ...................................................................................... 9
2.3. Chi tiết các chức năng dò biên và thuật toán ....................................................................... 9
2.3.1. Dò biên theo kỹ thuật Gradient ................................................................................................. 9
2.3.2. Phương pháp dò biên theo kỹ thuật Laplace .......................................................................... 11
2.3.3. Phương pháp dò biên gián ti ếp .............................................................................................. 12
2.4. Chương trình ..................................................................................................................... 13
2.4.1. Giao diện và các chức năng chính ......................................................................................... 13
2.4.2. Chức năng Gradient .............................................................................................................. 14
2.4.3. Chức năng Laplace................................................................................................................ 15
2.4.4. Chức năng dò biên gián ti ếp(Indirect Method) ................................ ................................ ........ 16
2.5. Một số hàm và thủ tục chính .............................................................................................. 17
Trang 2/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
Phần 1 TỔNG QUAN VỀ BIÊN VÀ CÁC PHƯƠNG PHÁP
PHÁT HIỆN BIÊN
1.1. Vị trí của biên trong phân tích ảnh
Phân tích ảnh là m ột qua trình gồm nhiều giai đoạn. Đầu tiên là giai đoạn
tiền xử lý ảnh. Sau giai đoạn này, ảnh được tăng cường hay được khôi phục
đề làm nồi các đặc tính ( feature extraction ), tiếp theo là phân đoạn ảnh
(segmentation) thành các phần tử. Thí dụ, như phân đoạn dựa theo biên,
dựa theo v ùng,… Và tuỳ theo các ứng dựng, giai đoạn tiếp theo có thể là
nhận dạng ảnh ( phân thành các lớp có miêu tả) hay là giải thích v à miêu tả
ảnh. Hình 1.1 mô tả tóm lược các bước của quá trình phân tích ảnh:
Trích chọn Phân Phân loại
đặc tính đoạn
Ảnh đầu ra của
quá trình tiền XL Giải thích
Hình 1.1. Các bước trong phân tích ảnh
C ác đặc trưng của ảnh thường gồm: mật độ xám, phân bổ xác xuất, phân bồ
k hông gian, biên ảnh. Các kỹ thuật ph ân đoạn ảnh chủ yếu dựa vào biên.
D o đó, biên có tầm quan trọng đặc biệt trong qua trình phân tích
ảnh.
1.2. B iên và các kỹ thuật dò biên
Trong phần này chúng ta sẽ đề cập đến một số nội dung: khái niệm về
biên, phân loại các phương pháp phát hiện biên và qui trình phát hiện biên.
1 .2.1. Khái niệm về biên
Biên là m ột vấn đề chủ yếu trong phân tích ảnh v ì các kỹ thuật phân
đoạn ảnh chủ yếu dựa v ào biên.
Một điểm ảnh có thể coi là điểm biên nếu ở đó có sự thay đổi đột ngột
v ề mức xám. Tập hợp các điểm biên tạo thành biên hay đường bao ảnh của
ảnh (boundary).
Thí dụ, trong một ảnh nhị phân, một điểm có thể gọi là biên nếu đó là
điểm đen và có ít nhất một điểm trắng là lân cận.
Đ ể hình dung tầm quan trọng của biên ta xét ví dụ sau: Khi người hoạ
s ĩ vẽ một cái bàn gỗ, chỉ cần vài nét phác thảo về hình dáng như cái mặt bàn,
c hân bàn mà không cần thêm các chi tiết khác, người xem đã có thể nhận ra
Trang 3/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
nó là m ột cái bàn. nếu ứng dụng của ta là phân lớp nhận diện đối tượng, thì
c oi như nhiệm vụ đã hoàn thành. Tuy nhiên nếu đòi hỏi thêm về các chi tiết
k hác như vân gỗ hay màu sắc,…thì với chừng ấy thông tin là chưa đủ.
N hìn chung về m ặt toán học người ta coi điểm biên của ảnh là điểm có
s ự biến đổi đột ngột về độ xám.Như vậy phát hiện biên một cách lý tưởng là
xác định được tất cả các đường bao trong các đối tượng. Định nghĩa toán
học của biên ở trên là cơ sở cho các kỹ thuật phát hiện biên. Điều quan trọng
là sự biến thiên mức xám giữa các ảnh trong một vùng thường là nhỏ, trong
k hi đó biến thiên m ức xám của điểm vùng giáp ranh (khi qua biên) lại khá
lớn.
1 .2.2. Phân loại các kỹ thuật phát hiện biên
Xuất phát từ định nghĩa toán học của biên người ta thường sử dụng 2
phương pháp phát hiện biên sau:
1 .2.2.1. Phương pháp phát hiện biên trực tiếp:
Phương pháp này nhằm làm nổi biên dựa vào sự biến thiên về giá trị độ
s áng của điểm ảnh. kỹ thuật chủ yếu dùng phát hiện biên ở đây là k ỹ thuật
đạo hàm. N ếu lấy đạo hàm bậc nhất của ảnh ta có phương pháp Gradient;
nếu lấy đạo hàm bậc hai ta có kỹ thuật Laplace. Hai phương pháp trên được
gọi là phương pháp dò biên cục bộ. ngoài ra người ta còn sử dụng phương
pháp “đii theo đường bao”: dựa v ào nguyên lý qui hoạch hoạt động và được
gọi là phương pháp dò biên tổng thể.
1 .2.2.2. Phương pháp gián tiếp:
Nếu bằng cách nào đấy , ta phân được ảnh thành các vùng thì đường
phân ranh giữa các vùng đó chính là biên. việc phân vùng ảnh thường dựa
v ào kết cấu (texture) bề mặt của ảnh.
Cũng cần lưu ý rằng, kỹ thuật dò biên và phân vùng ảnh là hai bài toán đối
ngẫu của nhau. Thực vậy, dò biên để thực hiện phân lớp đối tượng và một
k hi đã phân lớp xong có nghĩa là đã phân vùng được ảnh. Và ngược lại, khi
phân vùng, ảnh đã phân lập được thành các đối tượng, ta có thể phát hiện
được biên. Phương pháp dò biên trực tiếp tỏ ra khá hiệu quả v ì ít chịu ảnh
hưởng của nhiễu. song nếu sự biến thiên đ ộ sáng không đột ngột, phương
pháp này lại kém hiệu quả. Phương pháp dò biên gián tiếp tuy có khó cài đặt
s ong lại áp dụng khá tốt khi sự biến thiên độ sáng nhỏ.
1 .2.3. Qui trình phát hiện biên trực tiếp
b1) Khử nhiễu ảnh
Vì ảnh thu nhận thường có nhiễu, nên bước đầu tiên là phải khử nhiễu.
v iệc khử nhiễu được thực hiện bằng các kỹ thuật khử nhiễu khác nhau.
b2) Làm nổi biên
Trang 4/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
Tiếp theo là làm nổi biên bởi các toán tử đạo hàm
b3) Đ ịnh vị điểm biên
Vì các k ỹ thuật làm nổi biên có hiệu ứng phụ là tăng nhiễu , do vậy sẽ
c ó một số điểm biên giả cần loại bỏ.
b4) liên kết và trích chọn biên.
N hư đã nói, phát hiện biên và phân vùng ảnh là một bài toán đối ngẫu.
v ì thế cũng có thể phát hiện biên thông qua việc phân v ùng ảnh.
1.3. Một số phương pháp phát hiện biên cục bộ
1 .3.1. Phương pháp gradient
Phương pháp gradient là phương pháp dò biên cục bộ dựa vào cực
đạii của đạo hàm. Theo định nghĩa, gradient là một véctơ có các thành phần
biểu thị tốc độ thay đổi giá trị của điểm ảnh theo hai hướng x và y . các thành
phần của gradient được tính bởi:
df(x,y) f(x+dx,y) – f(x,y)
= fx
dx dx
df(x,y) f(x,y+dy) – f(x,y)
= fy
dy dy
v ới dx là khoảng cách giữa các điểm theo hướng x ( khoảng các tính bằng số
điểm) và tương tự với dy. Trên thực tế, người ta hay dùng v ới
dx = dy = 1
Trong kỹ thuật gradient, người ta chia thành 2 kỹ thuật (do dùng 2 toán
tử khác nhau): kỹ thuật gradient v à kỹ thuật la bàn. kỹ thuật gradient dùng
toán tử gradient lấy đạo hàm theo hai hướng; c òn k ỹ thuật la bàn lấy đạo
hàm theo 8 hướng chính: Bắc, Nam, Đông ,Tây và Đông Bắc, Tây Bắc, Đông
N am, Tây Nam.
1 .3.1.1. K ỹ thuật gradient
Kỹ thuật này sử dụng một cặp mặt nạ H1 v à H2 trực giao ( theo 2 hướng
v uông góc). Nếu định nghĩa g1,g2 là gradient tương ứng theo 2 hướng x v à y,
thì biên độ của gradient, ký hiệu là g tại điểm (m,n) được tính theo công thức:
A0 = g(m,n) = g² 1(m,n) + g22(m,n) (1.2)
r(m,n) = tan-1g2(m,n)/ g1(m,n) (1.3)
C hú ý: để giảm tính toán, công thức 1-2 được tính gần đúng bởi:
A0 = | g1(m,n) | + | g2(m,n) |
Trang 5/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
C ác toán tử đạo hàm được áp dụng là khá nhiều. ở đây ta chỉ xét một
s ố toán tử tiêu biểu: toán tử Robert, Sobel, Prewitt…
Trước tiên chúng ta xét toán tử Robert. Toán tử này do Robert đề xuất
v ào năm 1965. Nó áp dụng trực tiếp của các công thức đạo hàm tại điểm
(x,y). v ới mỗi điểm ảnh I(x,y) của I, đạo hàm theo x, theo y được ký hiệu
tương ứng bởi g x, gy được tính:
gx = I(x +1,y) – I(x,y)
gy =I(x,y+1) – I(x,y)
điều này tương đương v ới việc chập ảnh với 2 mặt nạ H 1 và H2:
0 1 -1 0
H1 = H2 =
-1 0 0 -1
Ta gọi H1,H2 là mặt nạ Robert.
Trong trường hợp tổng quát, giá trị gradient biên độ g và gradient
hướng r được tính bởi công thức 1.2 và 1.3. Thường để giảm thời gian tính
toán, người ta c òn tính gradient theo các chuẩn sau:
A1 = | g1(m,n) + g2(m,n) |
hoặc
A2 = max( | g1(m,n) | , | g2(m,n) |)
C ần lưu ý rằng, do lạm dụng về ngôn từ, tuy ta lấy đạo hàm của ảnh
nhưng thực ra chỉ là mô phỏng và xấp xỉ đạo hàm bằng kỹ thuật nhân chập
do ảnh số là tín hiệu rời rạc, do vậy đạo hàm không tồn tại.
Trong kỹ thuật Sobel và prewtt người ta sử dụng 2 mặt nạ:
-1 0 1 -1 -1 -1
H1 = -1 0 1 H2 = 0 00
-1 0 1 1 01
N gang (hướng x) Dọc(hướng y)
a) mặt nạ Sobel
-1 0 1 -1 -2 -1
H1 = -2 0 2 H2 = 0 00
-1 0 1 1 21
Ngang (hướng x) Dọc(hướng y)
Trang 6/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
b) mặt nạ Prewitt
-1 0 1 -1 - 2 -1
0 0 0
H1 = H2 =
-20 2
-1 0 1 1 1
2
Ngang (hướng x) Dọc(hướng y)
c ) m ặt nạ đẳng hướng (Isometric)
Gradient được tính xấp xỉ công thức
Gx=Hx I v à Gy=Hy I (Hx nhân chập với I, Hy nhân chập v ới I)
Thực tế cho thấy rằng các toán tử Sobel v à Prewitt tốt hơn toán tử Sobel bởi
c húng ít nhậy cảm với nhiễu.
1 .3.1.2. K ỹ thuật La bàn
Về phương pháp kỹ thuật này tương tự k ỹ thuật Gradient. Tuy
nhiên,điểm khác, kỹ thuật Gradient chỉ lấy đạo hàm theo 2 hướng. còn k ỹ
thuật la bàn lấy đạo hàm theo 8 hướng chính: Bắc, Nam, Đông ,Tây v à Đông
Bắc, Tây Bắc, Đông Nam, Tây Nam. Bằng cách sử dụng 8 mặt nạ cho 8
hướng khác nhau.
1 .3.2. Phương pháp Laplace
C ác phương pháp đánh giá Gradient ở trên làm việc khá tốt khi m à độ
s áng thay đổi rõ nét. Khi m ức sáng thay đổi chậm, miền chuyển tiếp trải rộng,
phương pháp cho hiệu quả hơn đó là s ử dụng phương pháp đạo hàm bậc
hai gọi là phương pháp Laplace. Kết quả nghiên cứu cho thấy phương pháp
Gradient rất nhậy cảm với nhiễu và thường tạo nên biên kép. Toán tử
Laplace dùng nhiều kiểu mặt nạ khác nhau để xấp xỉ đạo hàm bậc hai. Dưới
đây là 3 kiểu mặt nạ hay dùng.
0 -1 0 -1 -1 -1 1 -2 1
H2
H1= 4 -1 8 -1 H 2= -2 8 -2
-1 -1
=
0 -1 0 -1 -1 -1 1 -2 1
Kỹ thuật laplace cho đường biên mảnh, tức là đường biên có độ rộng
bằng một pixel. Tuy nhiên, kỹ thuật này rất nhạy cảm với nhiễu v ì đạo hàm
bậc hai thường không ổn định.
Trang 7/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
1.4. C ác phương pháp do biên gián tiếp (phân vùng ảnh)
1 .4.1. Giới thiệu
Như phần trên đã trình bày, Nếu bằng cách nào đấy, ta phân được ảnh
thành các vùng thì đường phân ranh giữa các vùng đó chính là biên. việc
phân vùng ảnh thường dựa vào kết cấu (texture) bề mặt của ảnh.
Kỹ thuật dò biên và phân vùng ảnh là hai bài toán đối ngẫu của nhau.
Thực vậy, dò biên để thực hiện phân lớp đối tượng và m ột khi đã phân lớp
xong có nghĩa là đã phân vùng được ảnh. Và ngược lại, khi phân v ùng, ảnh
đã phân lập được thành các đối tượng, ta có thể phát hiện được biên.
D o vậy, Phân vùng ảnh là bước then chốt trong xử lý ảnh. Giai đoạn
này nhằm phân tích ảnh thành các thành phần có cùng tính chất nào đấy dựa
v ào biên hay những vung liên thông. Tiêu chuẩn để xác định các v ùng liên
thông có thể là cùng mức xám, cùng màu, v..v… Vùng ảnh là một thuộc tính
quan trọng của ảnh. Nói đến vùng ảnh là nói đến kết cấu bề mặt. Đường bao
quanh một vùng ảnh gọi là biên ảnh.
Một số phương pháp phân vùng c hính như:
Phân vùng ảnh dựa theo ngưỡng biên độ
Phân vùng ảnh dựa theo miền đồng nhất
Phân vùng ảnh dựa theo đường biên
Trang 8/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
Phần 2 CHƯƠNG TRÌNH ỨNG DỤNG
2.1. Giới thiệu
Phần 1 đã trình bày khái quát v ề vai trò và tầm quan trọng của biên trong
quá trình xử lý ảnh. Đồng thời, phần 1 cũng đ ã trình bày khái niệm về biên
ảnh cũng như các phương pháp dò biên của ảnh nhị phân trong máy tính.
Để áp dụng lý thuyết đã trình bày ở phần 1, Phần này sẽ giới thiệu một
c hương trình ứng dụng tìm biên của ảnh. Chương trình này áp dụng các kỹ
thuật do biên trực tiếp là kỹ thuật Gradient và Laplace. Trong kỹ thuật
Gradient, các toán tử Sobel và Prewitt được sử dụng.
Tiếp đó chương trình cũng giới thiệu một phương pháp dò biên gián tiếp
thông qua việc phân vùng ảnh.
Chương trình được v iết trên ngôn ngữ Visual C++ 6.0.
2.2. C ác chức năng trong chương trình
C hương trình bao gồm các c hức năng chính sau:
Đ ọc một ảnh nhị phân: ảnh có thể là đen trắng, ảnh màu (16 màu hoặc
256 m àu) dạng bitmap (*.bmp).
Lưu ảnh: lưu ảnh đã biến đổi ra file
D ò biên ảnh bao gồm các chức năng sau
o Theo kỹ thuật Gradient: bằng cách sử dụng toán tử Sobel v à
Prewitt.
o Theo k ỹ thuật Laplace: sử dụng toán tử Laplace-H2.
o D ò biên gián tiếp theo phân vùng ảnh: dò biên theo màu của ảnh.
2.3. C hi tiết các chức năng dò biên và thuật toán
2 .3.1. Dò biên theo k ỹ thuật Gradient
Theo như phần lý thuyết đã trình bày, k ỹ thuật Gradient dò biên theo 2
hướng x và y bằng cách sử dụng hai mặt nạ nhân chập theo hai hướng
C hương trình s ử dụng hai toán tử là Sobel và Prewitt như sau.
-1 0 1 -1 -1 -1
H1 = -1 0 1 H2 = 0 00
-1 0 1 1 01
N gang (hướng x) Dọc(hướng y)
a) mặt nạ Sobel
Trang 9/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
-1 0 1 -1 -2 -1
H1 = -2 0 2 H2 = 0 00
-1 0 1 1 21
N gang (hướng x) Dọc(hướng y)
b) mặt nạ Prewitt
Giả sử Gx v à Gy là 2 ma trận điểm ảnh thu được sau khi nhân chập v ới 2
mặt n ạ theo hai hướng tương ứng. Ma trận điểm ảnh G được tính xấp xỉ theo
c ông thức sau:
G=|Gx| + |Gy|
Thuật toán dò biên theo phương pháp Gradient như sau:
Đ ầu vào: ma trận ảnh cần tìm biên:
m ặt nạ I1 và I2
Đ ầu ra: Một ma trận ảnh (chứa c ác đường biên được tìm thấy).
Giải thuật
// Gradient Algorithm
For (mỗi điểm ảnh của ảnh)
if(Nếu điểm ảnh nẳm trên đường v iền ảnh)
G án giá trị các điểm ảnh trên đường v iền ảnh =0 (hoặc
bằng màu nền ảnh).
else
{
- Tính xấp xỉ Gradient theo chiều x (Gx): nhân chập
v ới m ặt nạ I1
-Tính xấp xỉ Gradient theo chiều y (Gy): nhân chập v ới
mặt nạ I2
-Tính giá trị đ iểm ảnh theo công thức xấp xỉ G:
G=|Gx|+ |Gy|
- N ếu giá trị đ iểm ảnh lớn hơn chỉ số màu của ảnh thì
gán giá trị ảnh là giá trị m àu lớn nhất.
}
Trang 10/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
Đ ể dễ hiểu, phần dưới đây sẽ minh hoạ thêm về giải thuật này:
Ma trận ảnh vào Mặt nạ
a11 a12 a13 .... a1n
m11 m12 m13
a21 a22 a23 .... a2n
m21 m22 m23
a31 a32 a33 .... a3n m31 m32 m33
.. ..
.. ..
Ma trận ảnh ra sau khi nhân chập
b11 b12 b13 .... b1n
b21 b22 b23 .... b2n
b31 b32 b33 .... b3n
.. ..
.. ..
Trong đó:
b22=(a11*m11)+ (a12*m12)+ (a12*m13)+ (a21*m21) + (a22*m22) +
(a23*m23) + (a31*m31)+ (a32*m32)+ (a33*m33).
C ác giá trị nằm trên đường v iền được gán =0 (hay giá trị m àu nền).
(b11,b12,...b1n,b11....bn1,b1n...bnn, bn1...bnn)
Đ ây là công thức tính Gx và Gy
Đ ể tính giá trị điểm ảnh đầu ra, s ử dụng công thức: G=|Gx|+ |Gy|
2 .3.2. Phương pháp dò biên theo kỹ thuật Laplace
Kỹ thuật Laplace dò biên theo cách tính xấp xỉ đạo hàm bậc hai dựa
trên m ột mặt nạ. Chương trình sử dụng mặt nạ H2 trong cách dò biên theo k ỹ
thuật Laplace.
-1 -1 -1
H2= 8 -1
-1
-1 -1 -1
Trang 11/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
G ọi G là ma trận điểm thu được sau khi nhân chập ma trận điểm ảnh (của
ảnh cần tìm biên)v ới mặt nạ H2.
G chính là ma trận điểm ảnh chứa các đường biên cần tìm .
Thuật toán dò biên theo phương pháp Gradient như sau:
Đầu v ào: ma trận ảnh cần tìm biên:
m ặt nạ H2
Đầu ra: Một ma trận ảnh (chứa các đường biên được tìm thấy).
Giải thuật
// Laplace Algorithm
For (mỗi điểm ảnh của ảnh)
if(Nếu điểm ảnh nẳm trên đường v iền ảnh)
G án giá trị các điểm ảnh trên đường v iền ảnh =0 (hoặc
bằng màu nền ảnh).
else
{
- Tính xấp xỉ Laplace G: nhân chập với mặt nạ I1
- N ếu giá trị đ iểm ảnh lớn hơn chỉ số màu của ảnh thì
gán giá trị ảnh là giá trị m àu lớn nhất.
}
2 .3.3. Phương pháp dò biên gián tiếp
D ựa trên kỹ thuật phân vùng ảnh, Phương pháp này dò biên theo sự
thay đổi m ức xám m àu của ảnh. N ếu những điểm ảnh nào có cùng màu hoặc
c ó màu khác nhưng khoảng cách màu nằm trong phạm v i cho phép, đồng
thời nằm kề nhau sẽ tạo thành một vùng.
Định nghĩa khoảng cách màu:
Khoảng c ách màu là m ột khái niệm để chỉ sự khác nhau về giá trị
màu của các điểm ảnh.
Giả sử a và b là 2 giá trị m àu của 2 điểm ảnh. Khoảng c ách m àu d
c ủa a và b được tính như sau:
d(a,b)=|Ra-Rb| + |Ga-Gb| + |Ba-Bb|
Trong đó Ra: là giá trị m àu đỏ tại điểm ảnh
Ga: là giá trị m àu xanh (green)tại điểm ảnh
Ba: là giá trị m àu xanh da trời (blue) tại đ iểm ảnh.
Nếu k hoảng cách màu d=0 thì 2 điểm ảnh đó có cùng m àu.
Đường biên giữ các vùng chính là các đường biên cần tìm .
Trang 12/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
Thuật toán tìm đư ờng biên dựa trên sự biến thiên giá trị màu
của các điểm ảnh.
Đầu v ào: Ma trận điểm ảnh, khoảng cách màu tối thiểu
Đầu ra: Ma trận điểm ảnh m ới (chứa các đường biên tìm thấy).
Giải thuật:
For (mỗi điểm ảnh của ảnh)
{
- Tính khoảng cách màu của điểm ảnh v ới c ác điểm ảnh lân
c ận: Tính theo 8 hướng của điểm ảnh
if(N ếu có một khoảng cách màu lớn hơn khoảng cách màu
cho phép)
{
- Ghi nhận điểm ảnh này là m ột điểm biên m ới.
}
}
2.4. C hương trình
2 .4.1. Giao diện và các chức năng chính
Màn hình chính khi chạy có giao diện như sau:
Trang 13/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
2 .4.2. Chức nă ng Gradient
Bao gồm hai chức năng:
o Sobel
o Prewitt
Kết quả dò biên theo kỹ thuật Gradient với toán tử Sobel
Kết quả dò biên theo kỹ thuật Gradient với toán tử Sobel
Trang 14/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
N hận xét:
Khi áp dụng hai toán tử này cho ta c ùng m ột kết quả tương tự nhau
Phương pháp này tạo nên đường biên rất đậm
2 .4.3. Chức nă ng Laplace
C hức năng này bao gồm
c hức năng Laplace -h2: sử dựng mặt nạ H2
Kết quả dò biên theo kỹ thuật Laplace
Trang 15/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
2 .4.4. Chức nă ng dò b iên gián tiếp(Indirect Method)
Kết quả dò biên theo phương pháp này
Trang 16/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
2.5. Một số hàm và thủ tục chính
v oid CDemo3Doc::OnMethodSobel()
{
// TODO: Add your command handler code here
if (image==0) return;
if (!image->IsValid()) return;
long Gx[3][3];
long Gy[3][3];
Gx[0][0] = -1; Gx[0][1] = 0; Gx[0][2] = 1;
Gx[1][0] = -1; Gx[1][1] = 0; Gx[1][2] = 1;
Gx[2][0] = -1; Gx[2][1] = 0; Gx[2][2] = 1;
Gy[0][0] = -1; Gy[0][1] = -1; Gy[0][2] = -1;
Gy[1][0] = 0; Gy[1][1] = 0; Gy[1][2] = 0;
Gy[2][0] = 1; Gy[2][1] = 1; Gy[2][2] = 1;
Gradient(Gx,Gy);
// image->Filter(kernel,3,16,0);
U pdateAllViews(NULL);
}
Trang 17/25
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
bool CDemo3Doc::Gradient(long Gx[3][3], long Gy[3][3])
{
//neu khong co du lieu anh
if(!image->GetDIB()) return false;
// Gradient Algorithm
long sum;
long sumx,sumy;//gia tri tinh gx, gy
long x,y;
//long r,g,b;
long i,j,gx,gy;
//RGBQUAD c;
//CxImage tmp;
B YTE cindex;
//tmp=image->cop
C xImage tmp;
tmp.Copy (*image);
long xmin,xmax,ymin,ymax;
xmin = ymin = 0;
xmax =(long) image->GetWidth(); ymax=(long)image-
>GetHeight();
//neu anh la 8bit/1pixel
if ((image->GetBpp() ==8)||(image->GetBpp() ==4))
{
for(y=ymin; y
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
//tinh theo chieu x
for( i=-1; i
- Tiểu l uận môn xử lý ảnh - Biên và các phương pháp dò biên
if(!img->GetDIB()) return false;
long x,y;
//CxImage tmp;
//tmp.Copy (*img);
long xmin,xmax,ymin,ymax;
B YTE preindex,posindex,index;
xmin = ymin = 0;
xmax =(long) img->GetWidth(); ymax=(long)img->GetHeight();
//neu anh la 8bit/1pixel
if ((image->GetBpp() ==8) || (image->GetBpp() ==4))
{
for(y=ymin; yGetPixelIndex(x,y) ;
posindex=img->GetPixelIndex(x+1,y+1) ;
//neu index tai diem x,y khong lon hon tai diem x-1,y-1
v a x+1,y+1 thi loai bo
if ((indexIsValid()) return;
Trang 20/25
nguon tai.lieu . vn