Bài giảng Xử lý ảnh - Chương 4: Phát hiện tách biên, phân vùng ảnh - Hoàng Văn Hiệp
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Xử lý ảnh - Chương 4: Phát hiện tách biên, phân vùng ảnh - Hoàng Văn Hiệp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
bai_giang_xu_ly_anh_chuong_4_1_phat_hien_tach_bien_phan_vung.pdf
Nội dung text: Bài giảng Xử lý ảnh - Chương 4: Phát hiện tách biên, phân vùng ảnh - Hoàng Văn Hiệp
- 10/26/2011 Xử lý ảnh Hoàng Văn Hiệp Bộ môn Kỹ thuật máy tính Viện Công nghệ thông tin và Truyền thông Email: [email protected] 1 Nội dung Chương 1. Giới thiệu chung Chương 2. Thu nhận & số hóa ảnh Chương 3. Cải thiện & phục hồi ảnh Chương 4. Phát hiện tách biên, phân vùng ảnh Chương 5. Trích chọn các đặc trưng trong ảnh Chương 6. Nén ảnh Chương 7. Lập trình xử lý ảnh bằng Matlab và C 2 1
- 10/26/2011 Chương 4. Phân vùng ảnh Hai phương pháp chính áp dụng trong phân vùng ảnh . Phương pháp dựa trên biên: phát hiện biên . Phương pháp dựa trên vùng ảnh 3 Phương pháp phân vùng dựa trên biên Phát hiện sự không liên tục (biến đổi bất thường) . Phát hiện điểm ảnh . Phát hiện đường thẳng . Phát hiện biên Các phương pháp nối biên Các phương pháp làm mảnh đường biên đến 1 pixel 4 2
- 10/26/2011 Phát hiện điểm ảnh 5 Phát hiện điểm ảnh T = 90% giá trị max của mức xám 6 3
- 10/26/2011 Phát hiện đường thẳng Chọn mặt nạ thích hợp để phát hiện Lấy ngưỡng (thresholding) 7 Phát hiện đường thẳng 8 4
- 10/26/2011 Phát hiện đường thẳng Giả sử muốn tìm các đường thẳng theo hướng -45 độ 9 Phát hiện biên Xấp xỉ đạo hàm cấp 1, và cấp 2 10 5
- 10/26/2011 Phát hiện biên (tiếp) 11 Phát hiện biên (tiếp) Đạo hàm cấp 1: . Bằng 0 tại những điểm không đổi . Khác 0 tại những điểm bắt đầu, kết thúc thay đổi (bắt đầu, kết thúc dốc) . Khác 0 tại những điểm nằm trên dốc Đạo hàm cấp 2: . Bằng 0 tại những điểm không đổi . Khác 0 tại những điểm bắt đầu, kết thúc thay đổi (2 giá trị) o Một giá trị phía bên thấp (tối) o Một giá trị phía bên cao (sáng) . Bằng 0 tại những điểm trên dốc 12 6
- 10/26/2011 Phát hiện biên (tiếp) 13 Phát hiện biên (tiếp) 14 7
- 10/26/2011 Phát hiện biên (tiếp) Nhận xét . Độ lớn của đạo hàm cấp 1: có thể xác định một điểm có nằm trên biên hay không . Dấu trong đạo hàm cấp 2 cho biết điểm ảnh nằm ở vùng sáng hay vùng tối của biên o Đạo hàm cấp 2 luôn có 2 giá trị khác dấu ứng với các điểm trên biên o Điểm cắt 0 có ý nghĩa trong việc tìm biên mỏng 15 Phát hiện biên (tiếp) Ảnh hưởng của nhiễu đến đạo hàm Ảnh gốc + nhiễu Gaussian (mean = 0, delta = 0, 0.1 1, 10) 16 8
- 10/26/2011 Phát hiện biên (tiếp) Ảnh hưởng nhiễu . Nhận xét: o Nhiễu trên ảnh gốc nhỏ o Ảnh hưởng trên các đạo hàm rất lớn o Các phép lọc làm trơn ảnh (lọc nhiễu, làm mờ ảnh) thường được áp dụng trước khi lấy đạo hàm . Phát hiện biên o Đạo hàm cấp 1: toán tử gradient o Đạo hàm cấp 2: toán tử laplacian 17 Toán tử gradient Gradient của ảnh f(x, y) tại vị trí (x, y) được định nghĩa 18 9
- 10/26/2011 Toán tử gradient (tiếp) 19 Toán tử gradient (tiếp) Cài đặt thực tế 20 10
- 10/26/2011 Toán tử gradient (tiếp) Toán tử gradient đường chéo 21 Toán tử gradient (tiếp) 22 11
- 10/26/2011 Toán tử gradient (tiếp) 23 Toán tử gradient (tiếp) 24 12
- 10/26/2011 Toán tử gradient (tiếp) Để xác định một điểm ảnh có nằm trên biên hay không . Tính gradient . So sánh với ngưỡng 25 Toán tử Laplacian 26 13
- 10/26/2011 Toán tử Laplacian (tiếp) Toán tử laplacian thường không được áp dụng trực tiếp để tìm biên . Đạo hàm cấp 2 nhận 2 giá trị tại các điểm trên biên . Rất nhạy với nhiễu . Laplacian không tìm được hướng của biên Áp dụng Laplacian . Smoothing ảnh . Sử dụng thuộc tính cắt 0 (zero-crossing) Laplacian of Gaussian 27 Laplacian of Gaussian 28 14
- 10/26/2011 Laplacian of Gaussian (tiếp) 29 Laplacian of Gaussian (tiếp) Áp dụng LoG để phát hiện biên . Tính LoG cuar ảnh . Tìm các điểm cắt 0 (zero crossing) o Áp mặt nạ 3 x 3 cho mỗi pixel o Điểm cắt 0 là những điểm có 2 lân cận đối diện nhau trái dấu 30 15
- 10/26/2011 Laplacian of Gaussian (tiếp) 31 Laplacian of Gaussian (tiếp) Tính xấp xỉ LoG . Có thể xấp xỉ LoG bằng DoG (different of gaussian) . Với tỉ lệ: 1.6:1 thì DoG có thể xấp xỉ với LoG 32 16
- 10/26/2011 Laplacian of Gaussian 33 Bộ dò biên Canny Là bộ dò biên cho kết quả rất tốt (so với Prewitt, sobel, LoG ) . Tỷ lệ lỗi thấp . Phân vùng các điểm trên biên . Trả về biên mỏng (đơn điểm) 34 17
- 10/26/2011 Bộ dò biên Canny (tiếp) Các bước thực hiện . Bước 1. Smoothing . Bước 2. Tính Gradients . Bước 3. Loại những điểm không cực đại . Bước 4. Dò các điểm trên biên bằng 2 ngưỡng 35 Bộ dò biên Canny (tiếp) Bước 1. Smoothing . Sử dụng bộ lọc Gaussian . Cài đặt 36 18
- 10/26/2011 Bộ dò biên Canny (tiếp) Bước 2. Tính Gradient . Sử dụng bất kỳ mặt nạ Gradient nào . Cài đặt 37 Bộ dò biên Canny (tiếp) Bước 3. Loại những điểm không cực đại . Tính độ lớn và góc của vector gradient . Quantize góc của vector gradient về góc 45 độ gần nhất 38 19
- 10/26/2011 Bộ dò biên Canny (tiếp) Bước 3 (tiếp) 39 Bộ dò biên Canny (tiếp) Bước 3 (tiếp) . So sánh M(x, y) với M(x’, y’) theo hướng dương và âm của hướng gradient o Nếu M(x, y) > M(x’, y’) theo cả hai hướng giữ nguyên: gN(x, y) = M(x, y) o Ngược lại: loại bỏ: gN(x, y) = 0 . Nếu: thì xét điểm (x+1,y) và (x-1, y) . Nếu: thì xét điểm (x,y+1) và (x,y-1) . Nếu: thì xét điểm (x+1,y+1) và (x-1,y-1) . Nếu: thì xét điểm (x+1,y-1) và (x-1,y+1) 40 20
- 10/26/2011 Bộ dò biên Canny (tiếp) Bước 4. Dò biên . Lựa chọn 2 giá trị ngưỡng (TH và TL): TH=kTL . Tính 2 ảnh dựa trên 2 ngưỡng này . Loại bỏ những điểm nằm trên biên “mạnh” 41 Bộ dò biên Canny (tiếp) Bước 4 (tiếp) . Những điểm nằm trên biên “mạnh”, gNH được đánh dấu . Những điểm trên biên “yếu”, gNL o Step1. Duyệt qua từng điểm p trong gNH o Step2. Đánh dấu những điểm biên “hợp lệ” trong gNL nếu điểm đó liên thông với p (8 liên thông) o Step 3. Nếu tất cả các điểm khác 0, p trong gNH đều đã được thăm step 4, ngược lại step 1 o Step 4. Gán 0 tất cả những điểm trong gNL không được đánh dấu biên “hợp lệ” o Step 5. Thêm những điểm khác 0 trong gNL vào kết quả biên 42 21
- 10/26/2011 Bộ dò Canny (tiếp) 43 Bộ dò Canny (tiếp) 44 22
- 10/26/2011 Bộ dò Canny (tiếp) 45 Bộ dò Canny (tiếp) 46 23
- 10/26/2011 Phương pháp phân vùng dựa trên biên Phát hiện sự không liên tục (biến đổi bất thường) . Phát hiện điểm ảnh . Phát hiện đường thẳng . Phát hiện biên Các phương pháp nối biên Các phương pháp làm mảnh đường biên đến 1 pixel 47 Các phương pháp nối biên Phương pháp xử lý nối biên cục bộ Phương pháp xử lý toàn cục 48 24
- 10/26/2011 Phương pháp xử lý nối biên cục bộ Tổng quát . Tính độ lớn và góc của vector gradient o M(x, y) và 훼( , ) o Áp mặt nạ (3x 3, hoặc 5 x 5) cho mỗi điểm ảnh (x, y) và kiểm tra . Nếu cả 2 điều kiện cùng thỏa mãn nối 2 điểm với nhau . Chi phí tính toán lớn 49 Phương pháp xử lý nối biên cục bộ (tiếp) Thuật toán đơn giản hơn . Tính độ lớn và góc của vector gradient o M(x, y) và 훼( , ) . Tạo ảnh nhị phân g(x, y) . Duyệt các dòng của g và điền (nối liền) các khoảng trắng có độ dài < K . Duyệt tất cả các hướng 휃, bằng cách o Quay g một góc 휃 áp dụng quét dòng như trên 50 o Quay g một góc -휃 25
- 10/26/2011 Phương pháp xử lý nối biên cục bộ (tiếp) 51 Phương pháp xử lý nối biên toàn cục Tổng quát . Tìm tất cả các đường thẳng tạo bởi 2 điểm bất kỳ . Tìm tất cả các tập điểm nằm trên (gần nằm trên) đường thẳng đó . Độ phức tạp o n(n-1)/2 đường thẳng o Số pháp so sánh n(n(n-1)/2) ~ n3 52 26
- 10/26/2011 Phương pháp xử lý nối biên toàn cục Biến đổi Hough (Hough transform) . Xét điểm (xi, yi), đường thẳng đi quay (xi, yi) có dạng: y = ax + b yi = axi + b . Có thể viết dưới dạng: 53 Biến đổi Hough Cách tính toán . Với mỗi giá trị (x, y) trên miền không gian, quét và điền giá trị trên miền tham số 54 27
- 10/26/2011 Biến đổi Hough (tiếp) Giá trị amin, amax, bmin, bmax tùy thuộc vào giá trị các điểm (x, y) Thuật toán: . Bước 1. Xây dựng mảng chỉ số tích lũy H[a, b] và gán giá trị 0 ban đầu . Bước 2. Với mỗi giá trị (xi, yi), với mỗi a, tính b theo b = -xi * a + yi. H[a, b] += 1 . Bước 3. Tìm giá trị lớn nhất max của H[a, b], nếu max/N > ngưỡng kết luận N điểm đã cho cùng nằm trên 1 đường thẳng 55 Biến đổi Hough (tiếp) Ví dụ: cho 5 điểm (0, 1); (1, 3); (2, 5); (3, 5); (4, 9), ngưỡng = 80%. Kiểm tra xem 5 điểm trên có nằm trên 1 đường thẳng hay không? Pt đường thẳng nếu có 56 28
- 10/26/2011 Biến đổi Hough trong hệ tọa độ cực 57 Biến đổi Hough (tiếp) Chú ý: . Biến đổi Hough còn có thể áp dụng cho hình tròn, elipse hay bất cứ hàm nào có dạng o F(v, c) = 0 Trong đó: v là vector tọa độ c là vector tham số 58 29
- 10/26/2011 Biến đổi Hough (tiếp) Áp dụng cho bài toán nối biên . Giả sử biên được tìm bằng cách tính toán gradient và lấy ngưỡng . Xây dựng mảng chỉ số tích lũy trên miền tham số [휌, 휃], thiết lập các phần tử bằng 0 ban đầu . Với mỗi điểm trên miền không gian, cập nhật mảng chỉ tích lũy số trên miền tham số . Xác định mối quan hệ giữa các pixel trong ảnh biên (có thể liên kết với nhau không?) o Liên kết nếu: các pixel cùng có giá trị mảng chỉ số tích lũy lớn o Giới hạn về khoảng cách giữa các pixel 59 Biến đổi Hough (tiếp) 60 30
- 10/26/2011 Bài tập Sobel 16 Canny 4 61 31



