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

pdf 31 trang ngocly 90
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:

  • pdfbai_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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 10/26/2011 Phát hiện biên (tiếp) 13 Phát hiện biên (tiếp) 14 7
  8. 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
  9. 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. 10/26/2011 Toán tử gradient (tiếp) 19 Toán tử gradient (tiếp) Cài đặt thực tế 20 10
  11. 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
  12. 10/26/2011 Toán tử gradient (tiếp) 23 Toán tử gradient (tiếp) 24 12
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 10/26/2011 Bộ dò Canny (tiếp) 43 Bộ dò Canny (tiếp) 44 22
  23. 10/26/2011 Bộ dò Canny (tiếp) 45 Bộ dò Canny (tiếp) 46 23
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 10/26/2011 Bài tập Sobel 16 Canny 4 61 31