2011-06-27 25 views
5

Vì vậy, điều tôi muốn làm là viết một ứng dụng, ít nhất là trong tương lai, có thể được chuyển sang nền tảng di động (chẳng hạn như android) có thể quét hình ảnh của gel protein và trả về dữ liệu chẳng hạn như số lượng các băng (nghĩa là trọng lượng) trong một cột, nồng độ tương đối (độ dày của băng) và trọng số của mỗi dải trong mỗi cột. Đối với những người không quen thuộc, hỗn hợp protein biến tính (về cơ bản, phân tử được hoàn thành thẳng) được nạp vào mỗi cột, và với việc sử dụng điện, các protein được kéo qua gel (vì các protein là các phân tử cực). Các cột cuối của mỗi bên của hình ảnh này là http://i52.tinypic.com/205cyrl.gif là nơi bạn đặt một hỗn hợp các protein có trọng số (vì vậy nếu bạn có 4 trọng lượng khác nhau, băng trên cùng là trọng lượng lớn nhất, và trọng lượng/kích thước của protein giảm thêm nó di chuyển xuống). Là một cái gì đó như thế này có thể phân tích bằng cách sử dụng OpenCV? Hình ảnh đã cho là một loại gel trông rất sạch sẽ, chúng thường có thể rất lộn xộn (xem hình ảnh google). Tôi cho rằng nếu tôi cho phép người dùng nhập số cột, cột có chứa trọng lượng và trọng lượng thực tế của chúng, cũng như cung cấp hình chữ nhật có thể điều chỉnh kích thước xung quanh các cạnh của gel, có thể quét và trích xuất dữ liệu từ hình ảnh của các gel này? Tôi lướt qua một cuốn sách giáo khoa về OpenCV nhưng tôi không thấy bất kỳ cách rõ ràng và đáng tin cậy nào tôi có thể tiếp cận điều này. Bất kỳ ý tưởng? Có lẽ một thư viện khác sẽ phù hợp hơn?Sử dụng OpenCV để phân tích dữ liệu từ gel protein

Trả lời

5

Tôi tin rằng bạn có thể làm điều này bằng OpenCV

Tiếp cận của tôi sẽ là một tách màu dựa. Và sau đó đếm các thành phần riêng biệt khác nhau.

Trong lớn bước ứng dụng của bạn sẽ làm các bước sau:

  1. tải hình ảnh, xoay nó mở rộng bằng tay thông qua giao diện của ứng dụng của bạn, để phù hợp với nhu cầu của bạn

  2. Tạo một màu xám thứ hai hình ảnh trong đó mỗi pixel chứa giá trị giữa [0,255], đại diện cho màu sắc của điểm gốc phù hợp với màu đích như thế nào (trong trường hợp là this image bóng màu lam) Trong một thử nghiệm của tôi, tôi đã sử dụng khái niệm các tập mờ và cắt alpha để trích xuất các đối tượng của một màu nhất định. Chức năng thành viên tam giác đã cho tôi kết quả khá tốt. Điều này đơn giản có nghĩa là tôi đã xác định triangular functions for all three color channels RGB và tổng kết kết quả của chúng cho mỗi màu được đưa ra làm đầu vào. Nếu các giá trị của màu sắc gần với các trung tâm của tam giác, thì tôi có một điểm tương đồng mạnh mẽ. Ngoài ra, bằng cách kiểm soát chiều rộng của hình tam giác, bạn có thể xác định khả năng chịu đựng của các trận đấu. (một tùy chọn khác là sử dụng chức năng thành viên hình thang)

  3. Tại thời điểm này, bạn có hình ảnh thang độ xám, nơi nền (gel) màu đen và các protein có màu xám/trắng. Nếu bạn muốn xóa một số tiếng ồn, hãy sử dụng tính năng xóa và giãn nở morphological operators (trang 127) (cvErode và cvDelate trong openCV).

  4. Sau đó, có thể sử dụng great openCV based blob extraction library này để trích xuất các hộp giới hạn của khu vực màu xám còn lại - đại diện cho các protein

  5. Có tất cả các tọa độ của các hộp bounding bạn có thể áp dụng các thuật toán của riêng mình, để trích xuất bất kỳ dữ liệu bạn muốn

Theo ý kiến ​​của tôi, OpenCV cung cấp cho bạn tất cả các công cụ cần thiết. Tuy nhiên, một giải pháp hoàn toàn tự động có thể khó có được.Nhưng tôi chắc chắn bạn có thể dễ dàng xây dựng GUI nơi bạn có thể đặt thông số của toán tử bạn áp dụng trong các bước được mô tả ở trên

Đối với Android: Tôi không phát triển cho nền tảng di động, nhưng tôi biết rằng bạn có thể tạo các ứng dụng C++ cho các thiết bị này - đã đọc một số câu hỏi liên quan đến iPhone & openCV -, vì vậy tôi cho rằng ứng dụng của bạn có thể di động hoặc ít nhất là phần xử lý hình ảnh của nó (GUI có thể quá cụ thể).

+1

điều này nghe có vẻ không liên quan lúc đầu, nhưng bạn có thể xem các ứng dụng dành cho thiết bị di động kiểm tra tiền gửi gần đây để lấy cảm hứng về cách hướng dẫn người dùng chụp ảnh để phân tích. Các nội dung như "căn chỉnh cột gel sao cho nó vừa với dòng này hoặc trong hộp này" sẽ giúp bạn đưa ra các giả định nhất định về dữ liệu hình ảnh và tránh phải xử lý các vấn đề như sắp xếp lại ảnh. Về cơ bản, sử dụng thiết kế giao diện người dùng tốt để hướng dẫn người dùng tạo hình ảnh rõ ràng, vì vậy bạn không phải lo lắng về việc tự động dọn dẹp nó. – Ian

Các vấn đề liên quan