Mục lục:

Dự án hộp cát BME 60B: 6 bước
Dự án hộp cát BME 60B: 6 bước

Video: Dự án hộp cát BME 60B: 6 bước

Video: Dự án hộp cát BME 60B: 6 bước
Video: Trải nghiệm source code của game Võ Lâm Truyền Kỳ. Học code qua dự án thực tế | Vũ Nguyễn Coder 2024, Tháng bảy
Anonim
Dự án hộp cát BME 60B
Dự án hộp cát BME 60B

Dự án Sandbox của chúng tôi nhằm mục đích giúp các nhà nghiên cứu trong lĩnh vực sinh học phân tích các mẫu tế bào và tìm ra điều kiện của tế bào của họ. Sau khi người dùng nhập hình ảnh của mẫu tế bào của họ, mã của chúng tôi sẽ xử lý hình ảnh để sẵn sàng đếm ô bằng cách chuyển đổi hình ảnh sang thang độ xám và nhị phân. Mã sử dụng ngưỡng để loại bỏ thông tin dư thừa không liên quan đến các ô thực tế nhằm tìm chính xác các khối lượng ô. Sau khi đếm số lượng ô trong hình ảnh, mã của chúng tôi cung cấp kích thước pixel của hình ảnh và sau đó tìm sự phân bố của diện tích ô bằng cách vẽ biểu đồ số lượng ô so với diện tích ô để cung cấp cho người dùng sự hợp lưu, đó là tỷ lệ phần trăm bề mặt của đĩa nuôi cấy được bao phủ bởi các tế bào cần quan tâm. Dựa trên hợp lưu, nhà nghiên cứu có thể xác định xem các tế bào có nên được chuyển qua hay không; Sự thụ động của tế bào đề cập đến việc mở rộng tuổi thọ hoặc số lượng tế bào hoặc vi sinh vật bằng cách chuyển một số chất nuôi cấy sang môi trường tăng trưởng tươi và nó rất hữu ích khi tế bào phát triển quá lớn hoặc hết thức ăn. Sau khi chạy mã và xử lý hình ảnh, người dùng có thể quyết định chấp nhận hay từ chối kết quả, đồng thời tiến hành điều chỉnh ngưỡng để truy xuất dữ liệu tốt hơn nếu cần.

Bước 1: Chọn và định cấu hình hình ảnh để phân tích

Chọn và định cấu hình hình ảnh để phân tích
Chọn và định cấu hình hình ảnh để phân tích

Bước đầu tiên trong mã của chúng tôi là chọn hình ảnh thích hợp và cấu hình nó để phân tích trong Matlab. Chúng tôi có thể chọn hình ảnh bằng chức năng uigetfile cho phép chúng tôi lấy bất kỳ tệp nào và chèn nó vào chương trình. Sau đó, sử dụng imread, chúng tôi đọc hình ảnh và cấu hình nó để phân tích trong Matlab. Hình ảnh được chọn sau đó sẽ được hiển thị trên một ô con.

Bước 2: Ngưỡng và GUI

Ngưỡng và GUI
Ngưỡng và GUI
Ngưỡng và GUI
Ngưỡng và GUI

Trong phần đầu của mã, một hình ảnh được chọn bằng cách sử dụng “uigetfile” và sau đó xác định hình ảnh đó bằng một biến. Sau đó, biến sẽ được sử dụng để xác định mã khi chạy các phân tích khác nhau. Một ô con 2x2 được tạo trong hình. Ở vị trí 1, ảnh gốc sẽ được hiển thị. Phần tiếp theo của mã là nơi diễn ra việc điều chỉnh các ngưỡng. Ban đầu, ngưỡng mặc định là 0,6 được sử dụng và được hiển thị ở vị trí 2 của ô con. Sau đó, một câu lệnh if được sử dụng để xác định xem người dùng muốn giữ nguyên ngưỡng hay điều chỉnh nó. Người dùng có thể điều chỉnh ngưỡng bằng cách sử dụng GUI bao gồm hình ảnh ở các điều kiện ngưỡng khác nhau, thanh trượt và nút lưu. Sau khi ngưỡng được thiết lập, người dùng sẽ nhấp vào nút lưu để lưu hình ảnh và nó sẽ được lưu trữ trong tệp MATLAB của người dùng dưới dạng-p.webp

Bước 3: Vẽ đường viền và phân bố ô

Vẽ đường viền và phân bố ô
Vẽ đường viền và phân bố ô
Vẽ đường viền và phân bố ô
Vẽ đường viền và phân bố ô

Phần tiếp theo của mã vẽ các đường bao. Có một vòng lặp trong đó các ô được bao quanh bởi một chu vi màu đỏ và những ô nằm trên cùng của một ô khác được viền màu xanh lục. Hình ảnh được phác thảo sau đó được hiển thị ở vị trí 3 với một đường khoảng cách tương tác. Dòng này sẽ xác định số lượng pixel trong hàng được người dùng điều chỉnh cho bộ chuyển đổi pixel thành milimét. Sau đó, hệ số khoảng cách được nhân với diện tích được xác định bởi các công cụ vùng và diện tích bây giờ được biểu thị bằng milimét bình phương. Dữ liệu sau đó được vẽ bằng biểu đồ để xem sự phân bố của các ô theo khu vực của nó. Biểu đồ này sau đó sẽ được hiển thị ở vị trí 4.

Bước 4: Chuyển đổi hình ảnh ô

Chuyển đổi hình ảnh ô
Chuyển đổi hình ảnh ô

Trong bước này, chúng tôi lấy hình ảnh thang độ xám và binazed, lọc và đảo ngược nó. Việc thực hiện các chức năng này trên hình ảnh đã loại bỏ các pixel nhiễu có thể bị nhầm lẫn với các ô và làm cho hình ảnh trở nên mịn và mềm hơn xung quanh các cạnh ô. Điều này được thực hiện để trích xuất các ô trong hình ảnh dưới dạng "đốm màu" có thể phân biệt được khác nhau về cường độ so với nền. "Blobs" là hình ảnh màu trắng cường độ cao và nền là màu đen. Nếu được phép thêm một chút thời gian, chúng tôi sẽ sử dụng một chuyển đổi hình ảnh Blob khác thay vì chức năng thấm nhuần để chính xác hơn và phù hợp hơn với hình ảnh của chúng tôi, nhưng chúng tôi cần thêm thời gian để nghiên cứu và triển khai chức năng này.

Bước 5: Đếm ô và tính toán hợp lưu ô

Đếm ô và tính toán hợp lưu ô
Đếm ô và tính toán hợp lưu ô

Trong bước này của mã, chúng tôi nhằm mục đích đếm số lượng ô có trong hình ảnh. Chúng tôi chủ yếu sử dụng các bước vùng chức năng để tính toán diện tích của các đốm màu và nếu diện tích được tính là nằm trong ranh giới mong muốn của chúng tôi, nó sẽ được vẽ trên một ô con. Các ranh giới được thiết lập để loại bỏ các pixel nhiễu nhỏ hoặc các cường độ lớn không phải là ô. Sau đó, bộ đếm ô sẽ đếm các trọng tâm sau đó được vẽ và thêm chúng vào bộ đếm trong vòng lặp for. Khi các khu vực của các ô đã được xác định, chúng tôi có thể tính toán sự hợp lưu. Tầm quan trọng chính của bước này trong mã là tìm sự hợp lưu của các ô và đây là mục tiêu then chốt đối với mục tiêu cuối cùng của chúng tôi về mã. Chúng tôi đã thực hiện điều này bằng cách tính tổng các pixel (sum (allAreas)) trong mỗi đốm màu và sau đó chia nó cho tổng giá trị pixel của hình ảnh (numel (img)). Tỷ lệ này sẽ cho chúng ta sự hợp lưu và nếu nó được xác định là lớn hơn 80% thì đó là thời gian để các tế bào được nhà nghiên cứu vượt qua. Chúng tôi hướng đến sự chính xác và chính xác nhất có thể nhưng với thời gian có hạn nên sự thiếu chính xác đã xảy ra. Nếu thời gian cho phép, chúng tôi sẽ xem xét các cách để làm cho việc đếm các đốm màu chính xác hơn chẳng hạn như nhiều kỹ thuật lọc hơn và / hoặc Biến đổi Hough vì chưa có đủ nghiên cứu để thử kỹ thuật lọc đó

Bước 6: Độ tròn của tế bào

Độ tròn của tế bào
Độ tròn của tế bào
Độ tròn của tế bào
Độ tròn của tế bào

Trước khi có thể đo độ tròn của đốm màu trong một hình ảnh, chúng ta cần chuyển đổi từ RGB sang thang độ xám, binarize, đảo ngược và lọc hình ảnh. Một kỹ thuật lọc đang sử dụng hàm bwareaopen, hàm này lọc hình ảnh quan tâm và nó loại bỏ bất kỳ thông số kỹ thuật hoặc pixel nào quá nhỏ không đại diện cho kích thước của ô. Một phần tử cấu trúc được tạo ra với hình dạng của một cái đĩa và vùng lân cận của 2 và nó được sử dụng để lấp đầy bất kỳ khoảng trống nào trên nền hoặc trong các ô. Sau đó, chúng ta sử dụng hàm bwboundaries để theo dõi các đốm màu và lưu trữ nó thành một ma trận. Sau đó, chúng tôi dán nhãn cho hình ảnh bằng các màu khác nhau để hình ảnh trở nên rõ ràng hơn. Tiếp theo, sử dụng vòng lặp for chạy theo số lượng đối tượng và lỗ hổng được tìm thấy trong hình ảnh, nó thiết lập một ranh giới xung quanh các đốm màu tương ứng với mảng này. Khi vòng lặp này kết thúc, một vòng lặp khác bắt đầu, một lần nữa theo số lượng các đối tượng và lỗ được tìm thấy trong hình ảnh. Lần này chúng ta sử dụng hàm regionprops để tập hợp các thuộc tính nhất định như vùng từ mảng và lưu trữ thông tin có chứa số lượng đối tượng và lỗ hổng. Sử dụng thông tin này, chúng tôi tính toán diện tích và chu vi của các đối tượng này bằng cách sử dụng hình dạng tâm. Ngưỡng được đặt để so sánh kết quả sau khi chúng tôi tính toán đơn vị số liệu của một đối tượng hình tròn và vẽ biểu đồ đo lường này dưới dạng văn bản bên cạnh các centroid được tính toán. Mã cuối cùng sẽ hiển thị độ tròn của các ô khác nhau được tìm thấy trong hình ảnh và bất kỳ giá trị nào gần với giá trị một sẽ tròn hơn các ô khác. Giá trị 1 có nghĩa là tế bào hoàn toàn tròn và ở tình trạng tốt để được chuyển.

Đề xuất: