4. Ý nghĩa khoa học và thực tiễn của đề tài
2.4. Lấy thông tin về vùng ROI trên ảnh
2.4.2. Giải thuật áp dụng
2.4.2.1. Giải thuật Contour Tracing
Phương pháp này cũng cung cấp một thủ tục để tìm ra tất cả các điểm ảnh thành phần. Khi quét một hình ảnh, từ trên xuống dưới và từ trái sang phải cho mỗi dòng. Khi gặp một đường viền bên trong hay bên ngoài thì gán nhãn cho đường viền.
Một số đặc điểm của giải thuật:
Thứ nhất: Điểm đường viền được truy cập nhiều hơn một lần do các thủ tục truy tìm đường viền trên, tuy nhiên không có nhiều hơn một hằng số lần.
Thứ hai: Khi một chỉ số ghi nhãn được gán cho một điểm ảnh, giá trị của nó là không thay đổi.
Thứ ba: Kết quả đầu ra là đường nét liên tục thông qua tập các điểm ảnh pixel.
Thứ tư: Thuật toán nhanh hơn so với các thuật toán phần-dán nhãn truyền thống.
Trong phương pháp này, khi thực hiện dò tìm sẽ quét toàn bộ ảnh từ trên xuống dưới và từ trái sang phải trong mỗi dòng. Chúng ta có thể phân chia các hoạt động thành bốn bước chính được minh họa trong hình 2.4.
Hình. 2.4: Bốn bước chính trong việc truy tìm và ghi nhãn các điểm thành phần.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Trong hình 2.4 A, Bắt đầu từ điểm A, gặp lần đầu tiên, thì sẽ thực hiện hoàn thành việc tìm một đường viền quá trình kết thúc khi trở về được điểm xuất phát này. Chúng ta gán một nhãn A và cho tất cả các điểm của đường viền đó.
Trong hình 2.4 B, khi gặp phải một điểm đường viền bên ngoài A đã được dán nhãn , ta quét theo theo chiều kim đồng hồ tìm thấy tất cả các điểm ảnh màu đen tiếp theo (nếu có) và gán cho chúng những nhãn giống như A.
Trong hình 2.4 C, khi truy cập một điểm đường viền bên trong, tại B, gặp lần đầu tiên, ta gán nhãn cho B tương tự như các thành phần của các đường viền bên ngoài. sau đó chúng tôi theo dõi các đường viền bên trong có chứa B và cũng gán cho tất cả các điểm đường viền.
Trong hình 2.4 D, khi gặp một điểm đường viền bên trong, tại B, ta quét tìm tất cả các điểm ảnh màu đen tiếp theo (nếu có) theo chiều ngược chiều kim đồng hồ và gán cho chúng những nhãn cùng như B.
Trong các thủ tục trên, ta chỉ làm một lần và gán cho mỗi điểm thành phần hoặc một nhãn mới hoặc nhãn tương tự như các điểm trước đó cho các dòng sau.
Để đơn giản, chúng ta giả định rằng các điểm ảnh ở hàng trên cùng là tất cả màu trắng . Chúng liên kết với một hình ảnh L đi kèm, trong đó lưu trữ các nhãn thông tin.
Ban đầu, tất cả các điểm của L được thiết lập bằng 0 (tức là nó không có nhãn). Sau đó bắt đầu quét để tìm một điểm ảnh màu đen. Gọi C là chỉ số nhãn cho các thành phần. Ban đầu, C được thiết lập bằng 1. Gọi P là điểm hiện tại đang được xử lý, thực hiện các bước sau:
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bước 1: Nếu P không có nhãn và các điểm ảnh ở trên là một điểm ảnh màu trắng P phải nằm trên một đường viền bên ngoài của một thành phần mới được gặp. Vì vậy, ta gán nhãn C cho P, trong khi đó thực hiện đường viền tracing để tìm ra đường viền bên ngoài, và gán nhãn C cho tất cả các đường viền pixels, sau đó chúng tôi tăng giá trị của C bằng 1.
Bước 1: P là điểm khởi đầu của một đường viên bên ngoài. 1 là các điểm ảnh màu đen không có nhãn.
Bước 2: Nếu điểm ảnh được đánh dấu dưới P là một điểm ảnh màu trắng, P phải nằm trên một đường viền bên trong. Có hai khả năng. Đầu tiên, P đã được dán nhãn (Hình. A). Trong trường hợp này, P cũng là một điểm ảnh đường viền bên ngoài. Thứ hai, P được gán nhãn (Hình. B) và tiến hành thực hiện đường viền truy tìm các đường viền bên trong có chứa P, và gán nhãn cùng với tất cả các điểm ảnh trên đường viền.
Bước 3: Nếu P không phải là một điểm xử lý ở bước 1 hoặc bước 2 (tức là, P không phải là một điểm đường viền). Chúng ta gán nhãn P giống như N.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bước 2: (A) P là điểm khởi đầu của một đường viền bên trong. P cũng nằm trên một đường viền bên ngoài. (B) P là điểm khởi đầu của một đường viền bên trong, nhưng nó không phải là một đường viền bên ngoài. 1, các điểm ảnh màu đen không có nhãn; n, có nhãn pixel đen.
Bước 3: P là một điểm không có nhãn và hàng xóm bên trái của nó N đã được dán nhãn. 1, các điểm ảnh màu đen không có nhãn; n, nhãn các điểm ảnh màu đen.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Như minh họa trong hình sau, để tránh thực hiện Counter Tracing tại các điểm, ta đánh dấu xung quanh điểm ảnh màu trắng của một thành phần với một số nguyên âm. Như vậy, tại thời điểm quét dòng, điểm ảnh dưới không còn là một điểm ảnh màu trắng hoàn toàn.
Bằng cách đánh dấu xung quanh điểm ảnh màu trắng, chúng đảm bảo rằng mỗi đường viền bên trong được bắt nguồn từ chỉ một lần. Như được minh họa trong hình 2.8 và 2.9, khi các đường viền nội bộ đã được truy tìm.
Bước 4.1: Xung quanh điểm ảnh màu trắng được đánh dấu bằng một số nguyên bản địa khi một đường viền đã được truy tìm. 1, UN nhãn pixel đen; n, có nhãn pixel đen; , Đánh dấu điểm ảnh màu trắng.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bước 4.2: Bao quanh điểm ảnh màu trắng được đánh dấu bằng một số nguyên âm khi một đường viền trong đã được truy tìm. 1, các điểm ảnh màu đen không có nhãn; n, có nhãn pixel đen; -, Đánh dấu điểm ảnh màu trắng.[13]
- Dựng đường viền (Contour tracing)
Mục tiêu của thủ tục tìm đường viền là tìm một đường viền bên ngoài hoặc đường viền bên trong từ một điểm cho trước, tại S. Tại điểm S, đầu tiên chúng tôi chạy một thủ tục gọi là Tracer. Nếu Tracer tìm thấy S là một điểm bị cô lập, tức là ta đã đến cuối đường viền. Trái lại Tracer sẽ đưa ra điểm đường viền ngay sau S. Gọi điểm này là T. Chúng tôi tiếp tục thi hành Tracer cho đến khi tìm thấy điểm đường viền sau T và cứ tiếp tục gọi Tracer cho đến khi thoả mãn 2 điều kiện sau: (1) Tracer xuất ra S và (2) điểm đường viền sau S là T. Thủ tục chỉ dừng lại khi cả hai điều kiện trên thoả mãn. Như thể hiện trong hình. 2.9.
Khi S là điểm khởi đầu và T là điểm đường viền tiếp, thì con đường mà Tracer tìm thấy là STUTSVWVS.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình. 2.5: Truy tìm các đường viền Trình theo vết (Tracer)
Đối với một đường viền cho điểm P, mục tiêu của Tracer là tìm thấy trong số tám điểm lân cận của 1 đường viền P. Vị trí của mỗi điểm lân cận của P được gán một chỉ số như trong hình A. Các tìm kiếm tiến hành theo hướng kim đồng hồ từ vị trí ban đầu được xác định theo cách sau đây.
Hình. (A). Các điểm lân cận của P được lập chỉ mục từ 0 đến 7. (B) Nếu điểm đường viền trước đó nằm ở 3 hướng tìm kiếm tiếp theo được thiết lập từ 5.
Nếu P là điểm khởi đầu của một đường viền bên ngoài, vị trí ban đầu được thiết lập tới 7 (trên bên phải) kể từ điểm P trên được biết đến là một điểm ảnh màu trắng và các điểm tiếp theo theo hướng chiều kim đồng hồ ở vị trí thứ 7.
Tuy nhiên, nếu P là điểm khởi đầu của một đường viền trong, vị trí ban đầu được
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
thiết lập để 3 (dưới bên trái) kể từ điểm dưới đây P cũng được biết đến là một điểm ảnh màu trắng và tiếp theo điểm theo hướng chiều kim đồng hồ là tại 3.
Mặt khác, nếu các điểm đường viền trước đó tồn tại và nằm ở vị trí 3 (dưới trái), sau đó vị trí ban đầu được thiết lập đến 5 từ các điểm ảnh ở vị trí thứ 4 phải được từng viếng thăm (Hình B). Nói chung, khi P không phải là điểm khởi đầu của một đường viền, không phân biệt là đường viền là bên ngoài hoặc nội bộ, vị trí tìm điểm khởi tạo của nó được đặt là d + 2 (mod 8), trong đó d là vị trí của các con trước điểm đường viền.
Cài đặt thủ tục xác định vùng ROI trên ảnh y tế, sử dụng thuật toán Contour Tracing bằng ngô ngữ giả lập.
Input: Ảnh T, chứa một thành phần liên thông P các ô màu đen.
Output: Một chuỗi B(b1,b2,...,bk)
các điểm ở biên ảnh, tức là đường viền.
Định nghĩa:
- M(a) là lân cận Moore1 của điểm ảnh a.
- p là điểm ảnh biên đang có.
- c là điểm ảnh đang xem xét, tức là c nằm trong M(p).
begin
- Đặt B = rỗng.
- Quét từ dưới lên trên và từ trái sang phải các ô lân cận của T cho đến khi vẫn còn tìm thấy một điểm ảnh màu đen, kí hiệu là s, trong P.
- Thêm s vào B.
- Đặt điểm biên đang có p thành s, nghĩa là p=s.
- Quay lui, tức là di chuyển đến điểm ảnh mà từ đó ta đã đi vào s.
- Đặt c là điểm ảnh tiếp theo thuận chiều kim đồng hồ trong M(p).
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
While c ≠ s do if c là màu đen
thêm c vào B
đặt p=c
Quay lui (di chuyển pixel đang xét c đến điểm ảnh mà từ đó ta đã đi vào p)
else
đẩy điểm ảnh đang xét sang điểm ảnh tiếp theo thuận chiều kim đồng hồ trong M(p)
end while end