BÁO CÁO MÔN HỌC, Đề tài TÁCH BIÊN ẢNH
Trang 1TRƯỜ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
Trang 2I 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
Trang 3như 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 :
Trang 4- 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
Trang 5II 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.
Trang 6Cá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:
Trang 7và 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
Trang 8nhau 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 I kq có các điểm biên với mức xám được tăng cường
Trang 102 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
Trang 11Nhữ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
Trang 12Hì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à:
H x = -1 0 1
-1 -1 -1
Các bước tính toán của kỹ thuật Prewitt
+ Bước 1: Tính I Hx và I H y
+ Bước 2: Tính I Hx + I H y
Ví dụ:
Trang 130 0 -10 -10 * *
I H x = 0 0 -10 -10 * *
-15 -15 -10 -5 * *
I H y = -15 -15 -10 -5 * *
Trang 1415 15 0 -5 * *
I H x + I H y = -15 -15 -20 -15 * *
-15 -15 -15 -10 * *
Trang 15III 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ả:
Trang 16IV 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