TRÌNH TỰ THIẾT KẾ PHẦN MỀM HỢP NHẤT HÌNH ẢNH 3 CHIỀU 1.Thiết kế giao diện trình duyệt ảnh

Một phần của tài liệu Nền tảng nghiên cứu các phương tiện hiển thị hình ảnh y khoa (Trang 57 - 68)

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM TRÊN NỀN MATLAB 7.0 4.1CƠ SỞ LÝ THUYẾT

4.2TRÌNH TỰ THIẾT KẾ PHẦN MỀM HỢP NHẤT HÌNH ẢNH 3 CHIỀU 1.Thiết kế giao diện trình duyệt ảnh

4.2.1. Thiết kế giao diện trình duyệt ảnh

Thông thường, một trình duyệt ảnh chỉ tập trung xử lý và thao tác trên một ảnh nhất định (lấy ví dụ như phần mềm ACD See, Photoshop, hay công cụ MS Paint của Windows…) nhưng đối với trình duyệt ảnh dùng trong y khoa thì không như vậy. Khi tiến hành bất kỳ qui trình thu nhận ảnh từ bệnh nhân trong bất kỳ mô hình nào, kết quả thu được không phải chỉ là những ảnh rời rạc nhau mà hầu hết là những tập ảnh biểu diễn các lớp cắt liên tiếp nhau (có thể lên tới hàng trăm lớp cắt). Như vậy, để khảo sát được một hồ sơ ảnh của bệnh nhân thì trình duyệt ảnh y khoa phải đáp ứng được khả năng duyệt cùng lúc nhiều tập ảnh. Đây cũng chính là cơ sở hỗ trợ cho khả năng tái tạo ảnh 3 chiều về sau do tất cả thông tin từ các ảnh thành phần trong cùng một tập ảnh đều được truy cập và xử lý đồng thời.

Hướng tới giải quyết vấn đề này, trình duyệt ảnh được tạo ra bởi MATLAB sẽ có khả năng đáp ứng nhu cầu hiển thị cùng lúc nhiều tập ảnh dữ liệu của bệnh nhân. Ngoài ra, do hầu hết các máy tính ngày nay đều chạy trên nền Windows với tương tác trực quan từ người sử dụng, màn ảnh hiển thị thông tin của máy có kích thước nhất định, chính vì thế

số hình ảnh hiển thị cùng lúc trên màn hình cần được tính toán phù hợp với kích thước màn hiển thị (thông thường màn hình có độ phân giải khoảng 1024 × 768 pixels).

Qua thực tế khảo sát một số phần mềm duyệt ảnh của các mô hình máy trong bệnh viện, nhận thấy trình duyệt ảnh gồm 4 khung hiển thị ảnh là phù hợp nhất để đảm bảo độ chính xác khi duyệt một ảnh bất kỳ.

Với mục tiêu chính đầu tiên là phần mềm phải có khả năng thiết lập ảnh 3 chiều từ các tập ảnh 2 chiều, nên ở đây, trình duyệt ảnh được thiết kế trước hết sẽ gồm 4 khung hiển thị ảnh. Mỗi khung hiển thị có thể dùng để hiển thị 1 ảnh cần nghiên cứu, hoặc có thể hiển thị theo thứ tự từng ảnh một trong tập ảnh nghiên cứu. Khi một khung ảnh đại diện cho một tập ảnh hiển thị, ta có thể dựa vào đây để thiết lập ảnh 3 chiều từ tập ảnh chứa trong khung.

Cũng từ thực tế khảo sát, ta nhận thấy rằng hồ sơ ảnh của bệnh nhân không chỉ gồm 1 tập ảnh mà gồm nhiều tập ảnh (ứng với từng phân đoạn chụp ảnh). Vì số lượng khung ảnh của trình duyệt phải đảm bảo là 4 khung nên ta sẽ thiết kế phần mềm có thể duyệt lần lượt một nhóm 4 tập ảnh trong tất cả các tập ảnh trong hồ sơ ảnh bệnh nhân.

Đáp ứng được tất cả các yêu cầu trên có nghĩa là đã giải quyết được mục tiêu đầu tiên của phần mềm.

Hình dưới đây là minh họa cho giao diện cơ bản của trình duyệt ảnh sau khi đã thiết kế phù hợp. Trong hình, 4 khung ảnh biển diễn cho 4 tập ảnh đầu tiên nằm trong hồ sơ ảnh của 1 bệnh nhân. Các phím ◄► tương ứng để điều chỉnh hiển thị các ảnh trong 1 tập ảnh theo thứ tự số trong khung. Thanh trượt dọc điều khiển việc hiển thị 4 tập ảnh liên tiếp trong hồ sơ ảnh của bệnh nhân (thanh này chỉ xuất hiện trong trường hợp duyệt toàn bộ hồ sơ ảnh với số tập ảnh lớn hơn 4).

Hình 3 : Giao diện cơ bản của trình duyệt ảnh y khoa

4.2.2. Xây dựng công cụ hợp nhất ảnh 2 chiều

Kỹ thuật hợp nhất sử dụng ở đây là kỹ thuật dựa vào cường độ điểm ảnh có sử dụng thêm hình thức điểm tương đồng. Tiến trình hợp nhất được thực hiện qua các công đoạn :

Cân chỉnh kích thước 2 ảnh tương xứng với nhau

Đây là một công việc tương đối phức tạp do kích thước của các ảnh là rất đa dạng. Như đã đề cập trong chương 2, kích thước ảnh y khoa thường là 512 × 512 hoặc 256 × 256 pixels. Nhưng do yếu tố chủ quan từ người điều khiển nên ảnh có khác biệt một ít về chiều cao hay chiều rộng, chẳng hạn như 512 × 448 hoặc 340 × 320 … chính điều này gây ra sự phức tạp. Vì để hợp nhất có hiệu quả thì kích thước hai ảnh không quá chênh lệch, nhưng nếu cân chỉnh kích thước một cách thô sơ thì dễ gây ra sai lệch cho ảnh được chỉnh kích thước (ảnh có thể bị kéo dãn hoặc thu hẹp lại so với thực tế), từ đó kết quả hợp nhất sẽ bị ảnh hưởng không còn đảm bảo tính trung thực nữa.

Vì vậy, ta phải chỉnh sửa kích thước hai ảnh sao cho vừa phải đảm bảo các cấu trúc bên trong ảnh tương xứng nhau lại vừa phải đảm bảo kích thước 2 ảnh phù hợp với tỉ lệ ban đầu. Để làm được như thế, ta sẽ vận dụng linh hoạt hai công cụ điều chỉnh kích thước do MATLAB hỗ trợ là imresize và wextend [33].

• Nếu hai ảnh chỉ chênh lệch nhau một ít chẳng hạn như trường hợp 512 × 512 với 512 x 448, ta sẽ sử dụng wextend để bổ sung phần khuyết của ảnh như trong trường hợp này ta sẽ bổ sung thêm về hai phía những cột điểm ảnh có giá trị 0 vào ảnh thứ 2 để điều chỉnh kích thước thành 512 × 512. Giá trị 0 nhằm biểu diễn màu đen cho phù hợp với đặc tính của các ảnh y khoa.

• Còn trong trường hợp hai ảnh chênh lệch nhau nhiều như trường hợp 256 × 256 và 512 × 448, trước tiên ta sẽ sử dụng imresize để tăng kích thước ảnh 1 theo một thừa số tỉ lệ k (ở đây k = 2) thành 512 x 512 sau đó sẽ sử dụng wextend để điều chỉnh ảnh 2.

Khi vận dụng linh hoạt hai công cụ này, ta sẽ thu được hai ảnh tương xứng với nhau mà lại đảm bảo không bị méo dạng ảnh.

Xác định bờ mép của ảnh

Đây là công đoạn giúp đồng nhất bờ mép của hai ảnh với nhau làm nền tảng để hợp nhất các giá trị tương ứng tiếp theo.

Cách thức xác định mép được hỗ trợ bằng công cụ edge sử dụng bộ lọc “sobel” [33]. Sobel là bộ lọc giúp tăng cường cho các đường mép theo chiều ngang hoặc chiều dọc sử dụng thuật toán xấp xỉ “sobel” làm nền tảng với ma trận tích chập tương ứng là

1 2 1 0 0 0 1 2 1       − − −    hoặc 1 0 1 2 0 2 1 0 1 −     −    −   

Trong quá trình làm trơn dữ liệu điểm (sử dụng thuật toán Spline chẳng hạn), bộ lọc Sobel sẽ trả về những giá trị điểm ảnh lớn nhất, còn những giá trị khác bị loại bỏ (giá trị được gán bằng 0).

Tính toán các giá trị điểm ảnh hợp nhất

Sau khi đã đồng nhất mép của 2 ảnh, ta tiến hành thiết lập các giá trị điểm ảnh cho ảnh hợp nhất. Các giá trị này được tính toán dựa vào giá trị điểm ảnh tương xứng với nhau của 2 ảnh gốc.

Ở đây ta sử dụng một hình thức tuyến tính để xác định giá trị điểm ảnh hợp nhất có dạng sau :

c = a × p + b × (1-p) với 0 ≤ p ≤ 1

Với a, b, c lần lượt là giá trị điểm ảnh của ảnh gốc và ảnh hợp nhất.

Như vậy, với tập hợp các điểm ảnh mới được tạo ra, ta thu được ảnh hợp nhất. Và để đáp ứng được mục tiêu thứ 2 của phần mềm, ta sẽ thiết lập thêm một chức năng hợp nhất liên tục từng cặp ảnh tương ứng liên tiếp trong 2 tập ảnh được qui định trong 2 khung hiển thị. Cuối cùng, ta thu được một tập ảnh 2 chiều hợp nhất làm tiền đề để thiết lập ảnh 3 chiều hợp nhất.

4.2.3. Xây dựng trình duyệt ảnh 3 chiều

Một trong những yếu tố chính mà phần mềm cần có được là khả năng thiết lập ảnh 3 chiều từ các tập ảnh 2 chiều. Đây tưởng chừng như một thao tác khá đơn giản khi chúng ta chỉ cần biểu diễn trên cùng một hệ trục các lớp cắt ảnh liên tiếp nhau là sẽ thu được một cấu trúc không gian của vật thể. Nhưng vấn đề là số lượng ảnh thực tế trong một tập ảnh bao giờ cũng rất nhỏ so với kích thước của một ảnh. Chẳng hạn như một tập ảnh chụp của đầu gồm 30 lớp cắt có kích thước 512 × 512 pixels. Như vậy giả sử như độ dày của một lớp cắt tương đương 1 pixel thì khi biểu diễn 30 lớp cắt sát nhau trong không gian xyz, phần cấu trúc có được chỉ bằng khoảng 1 phần 15 cấu trúc thực tế. (adsbygoogle = window.adsbygoogle || []).push({});

Chính vì thế, phải tìm ra được một hình thức đặc biệt để biểu diễn cấu trúc không gian của vật ảnh tương đối sát với thực tế. Ta xét 2 cách sau :

Cách 1

Biểu diễn các lớp cắt trên trục đứng (z) theo tỉ lệ phù hợp với cấu trúc vật. Khi đó giữa các lớp cắt sẽ là những khoảng không cách đều nhau. Tiếp theo, sử dụng thuật toán để tạo nên những đường nối tương ứng giữa các lớp cắt này với nhau (cách thức này có thể xem như là làm tăng bề dày của các lớp cắt). Như vậy ta sẽ thu được một khối ảnh 3 chiều với kích thước tương đương với cấu trúc thật.

Cách 2

Dùng một thuật toán đặc biệt để nội suy các lớp cắt còn thiếu giữa 2 lớp cắt liên tiếp bất kỳ. Sau khi đã có đủ số lớp cắt cần thiết, tiến hành biểu diễn lên không gian 3 chiều, ta thu được cấu trúc tương đương.

Trong 2 cách trên, xét với mục đích hợp nhất hình ảnh 3 chiều, ta nhận thấy chỉ có cách 2 là khả thi. Nếu thực hiện theo cách 1, ta sẽ chỉ đơn giản tạo được bề mặt của vật thể chụp bởi các cấu trúc trên ảnh chụp có khuynh hướng hội tụ về tâm ảnh hoặc không hoàn toàn tương xứng với nhau trên từng ảnh. Do đó, việc tạo ra các đường nối giữa các lớp ảnh chỉ khã dĩ thực hiện được đối với một số điểm tương xứng nào đó giữa các lớp ảnh mà thôi, để có thể kết nối tương ứng giữa các cấu trúc là một công việc hầu như không có khả năng thực hiện. Vì thế, cách 1 chỉ có thể ứng dụng để tạo một dạng cấu trúc đặc biệt trong bộ phận được chụp để quan sát bề mặt chứ không thể giúp ích cho việc chẩn đoán chức năng của bộ phận đó.

Với cách 2, mỗi lớp ảnh được nội suy ra đều tương xứng với các lớp ảnh gốc hay nói cách khác, các lớp ảnh nội suy này có thể đại diện cho các lớp cắt không thực hiện trong quá trình chụp. Khi tiến hành biểu diễn trên toạ độ không gian thì các thông tin trên lớp cắt nội suy đều biến thiên tương xứng với các lớp cắt gốc giúp cho ảnh sát với thực tế

hơn. Phân bố cường độ điểm ảnh trên các lớp ảnh nội suy cũng phù hợp với phân bố cường độ của các điểm trên ảnh gốc.

Thuật toán nội suy : được ứng dụng ở đây dựa trên cường độ điểm ảnh của các lớp ảnh gốc.

Các lớp cắt nội suy được tạo thành từ tập hợp những giá trị điểm ảnh nội suy tương ứng. Cụ thể về thuật toán nội suy này, ta xét 2 lớp ảnh gốc có kích thước 256 ×

256 điểm ảnh

Giả sử ta muốn tạo thêm 1 lớp cắt 256 × 256 giữa 2 lớp này, ta sẽ tạo ra một tập giá trị điểm ảnh nội suy từ giá trị của các điểm ảnh trên 2 ảnh gốc như sau :

, ,, , 2 i j i j i j A B C + =

Với A, B là các tập giá trị điểm ảnh của 2 ảnh gốc. i, j có giá trị từ 1 đến 256

Nếu muốn tạo thêm n lớp cắt, ta làm như sau : , , , i j i j i j A B k n − = , , , m i j i j i j C =B +m k× hoặc Ci jm, =Ai j, −(n m− )×ki j, 0 , , i j i j C =B và 1 , , n i j i j C + A = Trong đó m

C là tập giá trị điểm ảnh nội suy thứ m với m có giá trị từ 1:n

k là tập các công bội tính toán từ độ chênh lệch giá trị của A và B

Bằng cách như vậy, các lớp cắt được tạo ra sẽ đảm bảo được tính liên tục trong phân bố của các lớp cắt gốc, đồng thời đáp ứng tốt thêm một mục tiêu nữa của phầm mềm thiết kế.

Đến đây thì công đoạn tái tạo ảnh 3 chiều gần như hoàn chỉnh, chỉ còn một vấn đề nữa cần quan tâm là việc biểu diễn các cấu trúc bị che khuất bên trong. Để tìm ra giải pháp cho vấn đề này, ta phải khảo sát đến mức độ trong suốt của cấu trúc ảnh 3 chiều.

Một cấu trúc 3 chiều sẽ gồm nhiều khối ảnh với cường độ đặc trưng khác nhau và được biểu diễn trên không gian dưới một lược đồ màu nhất định (thường sử dụng lược đồ RGB). Nếu đặc trưng về màu của mỗi khối ảnh được giữ nguyên bản chất, nó sẽ che lấp đi các khối ảnh khác khi quan sát trên cùng một phương. Để có thể quan sát được các khối ảnh bị che lấp, ta cần thiết kế một lược đồ khác có tác dụng thay đổi đặc tính trong suốt của mỗi màu cơ bản. Ta tạm gọi đây là thang trong suốt có độ trong suốt thay đổi trong khoảng [0, 1].

Thang trong suốt : phù hợp nhất để sử dụng trong phần mềm này sẽ là thang có tính chất đục ở trung tâm (độ trong suốt bằng 1) và trong suốt một cách tuyến tính về hai phía. Có như vậy thì những thành phần ở trung tâm khối ảnh 3 chiều sẽ được quan sát thấy qua những thành phần trong suốt biểu diễn bên ngoài.

Thủ thuật này được MATLAB hỗ trợ qua công cụ alphamap được diễn đạt chi tiết sau đây [33]

“rampup” : tạo ra một thang trong suốt gia tăng tuyến tính độ đục “rampdown” : tạo ra một thang trong suốt giảm tuyến tính độ đục

“vup” : tạo một thang trong suốt đục ở trung tâm và trong suốt tuyến tính về 2 phía “vdown” : tạo một thang trong suốt có vùng trung tâm trong suốt và đục tuyến tính về 2 phía

“increase” : thay đổi thang trong suốt theo hướng đục hơn “decrease” : thay đổi thang trong suốt theo hướng trong hơn

Hình 4 : Đồ thị biểu diễn độ trong suốt thay đổi theo 64 giá trị

4.2.4. Thiết lập ảnh 3 chiều hợp nhất

Trên cơ sở đã hoàn tất 4 mục tiêu trên, việc tiến tới xây dựng một hình ảnh 3 chiều hợp nhất tương đối đã được thuận lợi hơn. Dựa vào nguyên lý đã đề cập ở mục trên, ta tiến hành xây dựng công cụ hợp nhất 3 chiều.

Quay lại với trình duyệt ảnh ban đầu, ta nhận thấy ở đây cần bổ sung vào vài khung hiển thị chuyên biệt hơn dùng để biểu diễn các hình ảnh hợp nhất. Để quan sát một cách tiện lợi, chúng ta thiết lập thêm 2 khung hiển thị ngang hàng với các khung đã có.

Theo hình thức tạo ảnh 3 chiều thứ nhất, tức là ta sẽ hợp nhất các tập ảnh với nhau theo từng cặp ảnh liên tiếp rồi sẽ sử dụng công cụ tái tạo ảnh 3 chiều để cho ra ảnh mong muốn. Nếu làm theo cách này, ta cần phải thao tác trên các tập ảnh, đây là một công đoạn tương đối phức tạp. Chính vì thế, một trong 2 khung hiển thị vừa thiết lập sẽ dành cho ảnh hợp nhất thử nghiệm. Tiến hành thử nghiệm hợp nhất trên 1 cặp ảnh bất kỳ từ 2 tập ảnh cho đến khi đạt kết quả tối ưu nhất. Khi đó ta sẽ áp dụng thao tác này cho một loạt các cặp ảnh tiếp theo để cho ra tập ảnh hợp nhất ưng ý và biểu diễn chúng trong khung ảnh còn lại. Thiết kế khung ảnh hiển thị như thế cũng nhằm hướng đến mở rộng phép hợp nhất bán tự động về sau dễ dàng hơn. (adsbygoogle = window.adsbygoogle || []).push({});

Đối với trường hợp thứ hai, với việc sử dụng công cụ tái tạo ảnh 3 chiều, ta thu được hai khối ảnh 3 chiều tương ứng với 2 tập ảnh cần hợp nhất. Xây dựng công cụ hợp nhất ảnh 3 chiều lấy kỹ thuật dựa vào cường độ voxels làm nền tảng để thiết kế.

Một phần của tài liệu Nền tảng nghiên cứu các phương tiện hiển thị hình ảnh y khoa (Trang 57 - 68)