Tải bản đầy đủ (.docx) (14 trang)

BÁO CÁO MÔN HỌC Đề tài: TÁCH BIÊN ẢNH

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 (364.23 KB, 14 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐIỆN – ĐIỆN TỬ


BÁO CÁO MÔN HỌC

Đề tài: TÁCH BIÊN ẢNH

Giáo viên hướng dẫn: Thầy Ngô Bá Việt
Sinh viên thực hiện:
NGUYỄN ĐẮC TUẤN PHƯƠNG MSSV: 15141251
LÝ HOÀI PHONG

MSSV: 16141229

TRỊNH MINH NGUYÊN

MSSV: 13141210

TRẦN XUÂN PHƯƠNG

MSSV: 14141240

PHẠM VĂN LONG

MSSV: 13141171

Tp. Hồ Chí Minh, tháng 05 năm 2018


I. TỔNG QUAN


1. Giới thiệu chung

Tách biên là một công cụ quan trọng trong xử lý ảnh số. Nó làm giảm một cách
đáng kể khối lượng dữ liệu cần tính toán, chỉ giữ lại một số ít những thông tin
Trong bài này chúng em xin đưa ra một số phương pháp tách biên đang được sử
dụng phổ biến hiện nay thông qua matlab toolbox và viết chương trình trên
MATLAB để tiến hành so sánh cả về định tính và định lượng. Trong bài này chúng
em xin trình bày 3 phương pháp tách biên bằng Gradient thông qua các toán tử Sobel,
Prewitt và Roberts.

Toán tử Sobel, đôi khi được gọi là toán tử Sobel – Feldman hoặc bộ lọc Sobel,
được sử dụng trong xử lý hình ảnh và thị giác máy tính, đặc biệt là trong các thuật
toán phát hiện cạnh mà nó tạo ra một hình ảnh nhấn mạnh các cạnh. Nó được đặt
tên theo Irwin Sobel và Gary Feldman, các đồng nghiệp tại Phòng thí nghiệm trí tuệ
nhân tạo Stanford (SAIL). Sobel và Feldman trình bày ý tưởng về một "Nhà điều
hành hình ảnh 3x3 đẳng hướng" tại một cuộc nói chuyện tại SAIL vào năm 1968.
[1] Về mặt kỹ thuật, nó là một toán tử phân biệt rời rạc, tính toán độ gần đúng của
gradient của hàm cường độ hình ảnh. Tại mỗi điểm trong hình ảnh, kết quả của toán
tử Sobel – Feldman là vector gradient tương ứng hoặc chuẩn của vectơ này. Toán tử
Sobel – Feldman dựa trên việc kết hợp hình ảnh với một bộ lọc nhỏ, có thể phân
tách và có giá trị số nguyên theo hướng ngang và dọc và do đó tương đối rẻ tiền về
tính toán. Mặt khác, xấp xỉ gradient mà nó tạo ra là tương đối thô, đặc biệt đối với
các biến thể tần số cao trong hình ảnh.
Toán tử Prewitt được sử dụng trong xử lý hình ảnh, đặc biệt là trong các thuật
toán phát hiện cạnh. Về mặt kỹ thuật, nó là một toán tử phân biệt rời rạc, tính toán
độ gần đúng của gradient của hàm cường độ hình ảnh. Tại mỗi điểm trong ảnh, kết
quả của toán tử Prewitt là vector gradient tương ứng hoặc chuẩn của vectơ này.
Toán tử Prewitt dựa trên việc kết hợp hình ảnh với một bộ lọc nhỏ, có thể phân tách
và có giá trị nguyên theo hướng ngang và dọc và do đó tương đối rẻ về tính toán
như các toán tử Sobel và Kayyali [1]. Mặt khác, xấp xỉ gradient mà nó tạo ra là



tương đối thô, đặc biệt đối với các biến thể tần số cao trong hình ảnh. Các nhà điều
hành Prewitt đã được phát triển bởi Judith M. S. Prewitt.
Roberts được sử dụng trong xử lý hình ảnh và tầm nhìn máy tính để phát hiện
cạnh. Nó là một trong những máy dò cạnh đầu tiên và ban đầu được Lawrence
Roberts đề xuất vào năm 1963. Là một toán tử vi phân, ý tưởng đằng sau toán tử
chéo của Roberts là ước lượng gradient của một hình ảnh thông qua sự phân biệt rời
rạc, bằng cách tính toán tổng các bình phương của sự khác biệt giữa các điểm liền
kề theo đường chéo.
2. Ưu nhược điểm của từng phương pháp
 Phương pháp Prewitt

• Ưu điểm :
- Sử dụng cặp mặt nạ để phát hiên biên nên tương đối rẻ tiền về tính toán.
- Phát hiện được các biên theo chiều ngang và dọc của một hình ảnh.
- Mỗi bộ lọc điều có ưu điểm riêng
• Nhược điểm :
- Là bộ lọc cổ điển nên các hệ số trong mặt nạ cố định, không thể điều chỉnh nên
chất lượng ảnh thu được sẽ không thấy được nhiều cạnh và các cạnh sẽ không
được nhìn rỏ.
- Khi tách biên sẽ có khuynh hướng sinh ra một chút nhiễu.
 Phương pháp Sobel
• Ưu điểm :
- Sử dụng cặp mặt nạ để phát hiên biên nên tương đối rẻ tiền về tính toán.
- Phát hiện được các biên theo chiều ngang và dọc của một hình ảnh.
• Nhược điểm :
- Khi tách biên sẽ có khuynh hướng sinh ra một chút nhiễu.
 Phương pháp Roberts
• Ưu điểm :

- Sử dụng cặp mặt nạ để phát hiên biên nên tương đối rẻ tiền về tính toán.
- Phát hiện được các biên theo chiều ngang và dọc của một hình ảnh.
- Tính toán rất nhanh.
• Nhược điểm :
- Khi tách biên sẽ có khuynh hướng sinh ra nhiễu rất khó xử lý.
- Nhược điểm chính của toán tử Robert là sử dụng một mặt nạ nhỏ, và rất nhạy
cảm với nhiễu. Nó cũng tạo ra phản hồi rất yếu với biên thực, trừ khi các biên này
rất sắc nét.


Trên thực tế cả ba phương pháp này đều sử dụng hai mặt nạ có kích thước [3 x 3]
trong đó một mặt nạ chỉ đơn giản là sự quay của mặt nạ kia đi một góc 90 độ. Các mặt
nạ này được thiết kế để tìm ra các đường biên theo chiều đứng và chiều ngang một
cách tốt nhất. Khi thực hiện phép convolution giữa ảnh và các mặt nạ này ta nhận
được các gradient theo chiều đứng và chiều ngang Gx, Gy. Chúng đều có chung một
đặc điểm là muốn làm rõ đường biên.

II. PHƯƠNG PHÁP CHÍNH
1. Phương pháp Sobel
Toán tử sử dụng hai hạt nhân 3 × 3 được liên kết với hình ảnh gốc để tính xấp xỉ các dẫn
xuất - một cho các thay đổi ngang và một cho chiều dọc. Nếu chúng ta định nghĩa A là hình
ảnh nguồn, và Gx và Gy là hai hình ảnh mà tại mỗi điểm chứa các xấp xỉ dẫn xuất dọc và
ngang tương ứng, các tính toán như sau:

trong đó ở đây * biểu thị cho phép toán tích chập khi xử lý tín hiệu 2 chiều.
Vì hạt nhân Sobel có thể bị phân hủy như các sản phẩm của một hạt nhân trung bình
và khác biệt, nên chúng tính toán độ dốc bằng cách làm mịn. Ví dụ: Gx có thể được viết dưới
dạng:



Tọa độ x được định nghĩa ở đây khi tăng dần theo hướng "right" và tọa độ y được định
nghĩa là tăng dần theo hướng "down". Tại mỗi điểm trong hình ảnh, các xấp xỉ gradient kết
quả có thể được kết hợp để cung cấp độ lớn gradient, sử dụng:

Sử dụng thông tin này, chúng tôi cũng có thể tính toán hướng của gradient:

trong đó, ví dụ, Θ là 0 cho cạnh thẳng đứng nhẹ hơn ở bên phải.
Vì hàm cường độ của một hình ảnh kỹ thuật số chỉ được biết ở các điểm rời rạc, nên
các đạo hàm của hàm này không thể được xác định trừ khi chúng ta giả định rằng có một hàm
cường độ liên tục nằm bên dưới đã được lấy mẫu tại các điểm ảnh. Với một số giả định bổ
sung, đạo hàm của hàm cường độ liên tục có thể được tính như một hàm trên hàm cường độ
lấy mẫu, tức là hình ảnh kỹ thuật số. Nó chỉ ra rằng các dẫn xuất tại bất kỳ điểm cụ thể là
chức năng của các giá trị cường độ tại hầu như tất cả các điểm ảnh. Tuy nhiên, xấp xỉ các hàm
phái sinh này có thể được xác định ở độ chính xác thấp hơn hoặc lớn hơn.
Các toán hạng Sobel-Feldman đại diện cho một xấp xỉ gần đúng không chính xác của
gradient hình ảnh, nhưng vẫn có đủ chất lượng để được sử dụng thực tế trong nhiều ứng
dụng. Chính xác hơn, nó chỉ sử dụng các giá trị cường độ trong vùng 3 × 3 xung quanh mỗi
điểm ảnh để ước lượng gradient hình ảnh tương ứng, và nó chỉ sử dụng các giá trị số nguyên
cho các hệ số để tăng cường cường độ hình ảnh.
Toán tử Sobel – Feldman bao gồm hai phép toán tách biệt:
Làm mịn vuông góc với hướng đạo hàm bằng bộ lọc tam giác: h (-1) = 1, h (0) = 2 , h (1) = 1
Sự khác biệt trung tâm đơn giản theo hướng phái sinh: h' (- 1) = 1, h '(0 ) = 0, h '(1) = - 1
Sobel – Feldman lọc các dẫn xuất hình ảnh ở các kích thước khác nhau với x,y, z, t € {0,
-1,1}:


Vì vậy, ví dụ như hạt nhân Sobel-Feldman 3D theo hướng z:

 Chi tiết về công nghệ
Do đó, toán tử Sobel có thể được thực hiện bằng các phương tiện đơn giản trong cả phần

cứng và phần mềm: chỉ cần tám điểm ảnh quanh một điểm để tính toán kết quả tương ứng và
chỉ cần số học số nguyên để tính toán xấp xỉ vector gradient. Hơn nữa, hai bộ lọc rời rạc được
mô tả ở trên đều có thể tách rời:

và hai đạo hàm Gx và Gy có thể được tính như:

Áp dụng convolution K cho pixel nhóm P có thể được biểu diễn trong mã giả như sau:
N (x, y) = Tổng của {K (i, j). P (x-i, y-j)}, với i, j chạy từ -1 đến 1.
N (x, y) đại diện cho ma trận mới được tạo ra sau khi áp dụng Convolution K thành P, trong
đó P là ma trận điểm ảnh.
 Ví dụ


Kết quả của toán tử Sobel – Feldman là bản đồ 2 chiều của gradient tại mỗi điểm. Nó có thể
được xử lý và xem như thể nó là chính nó là một hình ảnh, với các khu vực có độ dốc cao
(các cạnh có khả năng) có thể nhìn thấy như các đường trắng. Các hình ảnh sau đây minh họa
điều này, bằng cách hiển thị tính toán toán tử Sobel-Feldman trên một hình ảnh đơn giản.

Những hình ảnh dưới đây minh họa sự thay đổi theo hướng của gradient trên một vòng
tròn màu xám. Khi dấu hiệu của Gx và Gy giống với gradient góc là dương, và âm khi khác
nhau. Trong ví dụ bên dưới, các màu đỏ và vàng trên cạnh của vòng tròn cho biết các góc
dương, và các màu xanh lam và lục lam cho biết các góc âm. Các cạnh thẳng đứng ở bên trái
và bên phải của vòng tròn có một góc 0 vì không có thay đổi cục bộ trong Gx . Các cạnh nằm
ngang ở phía trên và dưới của vòng tròn có góc của -π/2 và π/2 tương ứng vì không có thay
đổi cục bộ trong Gy . Góc âm cho cạnh trên biểu thị sự chuyển tiếp là từ vùng sáng đến tối,
và góc tích cực cho cạnh dưới biểu thị sự chuyển tiếp từ vùng tối sang sáng. Tất cả các pixel
khác được đánh dấu là màu đen do không có thay đổi cục bộ trong Gx và Gy và do đó góc
không được xác định. Cần lưu ý rằng vì góc là hàm của tỷ lệ Gx và Gy pixel với tỷ lệ thay
đổi nhỏ vẫn có thể có phản hồi góc lớn. Kết quả là tiếng ồn có thể có một phản ứng góc lớn
thường không mong muốn. Khi sử dụng thông tin góc nghiêng cho các ứng dụng xử lý hình

ảnh, cần thực hiện nỗ lực để loại bỏ nhiễu hình ảnh để giảm phản hồi sai này.


Bài tập về mặt nạ sobel tìm biên của ảnh
Input : ảnh xám I và mẫu Hx, Hy
Output: ảnh Ikq có các điểm biên với mức xám được tăng cường


2. Phương pháp Roberts


Về lý thuyết, toán tử bao gồm một cặp hạt nhân chập 2 × 2 như trong Hình 1. Một
hạt nhân đơn giản là một hạt nhân khác xoay 90 °. Điều này rất giống với toán tử
Sobel .

Hình 1
Những hạt nhân này được thiết kế để đáp ứng tối đa với các cạnh chạy ở 45 °
đến lưới pixel, một hạt nhân cho mỗi trong hai hướng vuông góc. Các hạt nhân có thể
được áp dụng riêng cho hình ảnh đầu vào, để tạo ra các phép đo riêng biệt của thành
phần gradient theo từng hướng (gọi các Gx và Gy ) này. Sau đó, chúng có thể được kết
hợp với nhau để tìm độ lớn tuyệt đối của gradient tại mỗi điểm và hướng của gradient
đó. Độ lớn gradient được cho bởi:

mặc dù thông thường, độ lớn gần đúng được tính bằng:

nhanh hơn nhiều để tính toán.
Góc định hướng của cạnh tạo ra gradient không gian (liên quan đến hướng lưới pixel)
được cho bởi:



Trong trường hợp này, hướng 0 được lấy để có nghĩa là hướng của độ tương
phản tối đa từ đen sang trắng chạy từ trái sang phải trên ảnh và các góc khác được đo
theo chiều kim đồng hồ từ điểm này.
Thông thường, độ lớn tuyệt đối là đầu ra duy nhất mà người dùng nhìn thấy --hai thành phần của gradient được tính toán thuận tiện và được thêm vào trong một lần
truyền qua hình ảnh đầu vào bằng cách sử dụng toán tử giả-xoắn được hiển thị trong
Hình 2.

Hình 2 Các hạt nhân bản chập giả được sử dụng để tính toán nhanh độ lớn gradient gần
đúng
Sử dụng chủ yếu, độ lớn gần đúng được cho bởi:

3. Phương pháp Prewitt
Kỹ thuật sử dụng 2 mặt nạ nhập chập xấp xỉ đạo hàm theo 2 hướng x và y là:

Hx =

Hy =

-1
-1
-1
-1
0
1

0
0
0
-1
0

1

1
1
1
-1
0
1

Các bước tính toán của kỹ thuật Prewitt


+ Bước 1: Tính I ⊗ Hx và I ⊗ Hy
+ Bước 2: Tính I ⊗ Hx + I ⊗ Hy
Ví dụ:

I=

I ⊗ Hx =

I ⊗ Hy =

0
5
5
5
0
0

0

5
5
5
0
0

0
0

0
0

0
0
*
*

0
0
*
*

0
5
5
5
0
0

0

0
0
0
0
0

0
0
0
0
0
0

-10 -10
-15 -15

*
*

*
*

-10 -10
-5 -5
*
*
*
*

*

*
*
*

*
*
*
*

15 15 10 5
0
0
0
0
-15 -15 -10 -5

*
*
*

*
*
*

-15 -15 -10 -5
*
*
*
*
*

*
*
*

*
*
*

*
*
*

15
0
I ⊗ H x + I ⊗ Hy =

0
5
5
5
0
0

15 0 -5
0 -15 -15

*
*

*

*

-15 -15 -20 -15
-15 -15 -15 -10
*
*
*
*
*
*
*
*

*
*
*
*

*
*
*
*


III. KẾT QUẢ
 Code matlab:

f=imread('cameraman.tif'); % Read in image
f_roberts = edge(f,'roberts'); % roberts edges
f_prewitt = edge(f,'prewitt'); % prewitt edges

f_sobel = edge(f,'sobel'); % sobel edges
subplot(2,2,1),imshow(f),xlabel('(Hinh goc)'); % Display image
subplot(2,2,2),imshow(f_sobel),xlabel('(Sobel)'); % Display image
subplot(2,2,3),imshow(f_prewitt),xlabel('(Prewitt)'); % Display image
subplot(2,2,4),imshow(f_roberts),,xlabel('(Robert)'); % Display image
 Kết quả:


IV. KẾT LUẬN
Sau khi tìm hiểu về ba phương pháp tách biên trên chúng em thấy rằng về cơ
bản chúng đều muốn làm rõ đường biên của bức ảnh mà chính xác hơn đó là làm rõ
đường biên theo phương ngang và phương dọc của bức ảnh. Sau khi tách biên ảnh ta
có thể dễ dàng phân tích và nhận dạng các đối tượng trong bức ảnh.Tách biên sẽ làm
giảm một cách đáng kể khối lượng dữ liệu cần xử lý và loại bỏ các thông tin không cần
thiết trong khi vẫn đảm bảo các thuộc tính quan trọng về cấu trúc của ảnh.



×