İçindekiler:

BME 60B Korumalı Alan Projesi: 6 Adım
BME 60B Korumalı Alan Projesi: 6 Adım

Video: BME 60B Korumalı Alan Projesi: 6 Adım

Video: BME 60B Korumalı Alan Projesi: 6 Adım
Video: Yeni Volvo S60 Test Sürüşü | Sınıfının En İyisi mi? 2024, Temmuz
Anonim
BME 60B Korumalı Alan Projesi
BME 60B Korumalı Alan Projesi

Sandbox Projemiz, biyolojik alandaki araştırmacıların hücre örneklerini analiz etmelerine ve hücrelerinin koşullarını bulmalarına yardımcı olmayı amaçlamaktadır. Kullanıcı hücre örneğinin bir görüntüsünü girdikten sonra, kodumuz görüntüyü gri tonlamalı ve ikiliye dönüştürerek hücre sayımına hazır hale getirmek için görüntüyü işler. Kod, hücre kütlelerini doğru bir şekilde bulmak için gerçek hücrelere ait olmayan fazla bilgileri kaldırmak için eşiklemeyi kullanır. Görüntüdeki hücre sayısını saydıktan sonra, kodumuz görüntünün piksel boyutunu verir ve daha sonra kullanıcıya izdüşümü vermek için hücre sayısını hücre alanına karşı çizerek hücre alanının dağılımını bulur. ilgilenilen hücreler tarafından kapsanan bir kültür tabağı yüzeyinin yüzdesi. Birleşmeye dayanarak, araştırmacı hücrelerin pasajlanması gerekip gerekmediğini belirleyebilir; hücrelerin geçişi, kültürün bir kısmını taze bir büyüme ortamına aktararak hücrelerin veya mikroorganizmaların ömrünün veya sayısının genişletilmesi anlamına gelir ve hücreler çok büyüdüğünde veya yiyecekleri tükendiğinde yararlıdır. Kodu çalıştırdıktan ve görüntüyü işledikten sonra, kullanıcı sonuçları kabul edip etmeyeceğine karar verebilir ve gerekirse verilerin daha iyi alınması için eşiği ayarlamaya devam edebilir.

Adım 1: Analiz için Görüntüyü Seçin ve Yapılandırın

Analiz için Görüntüyü Seçin ve Yapılandırın
Analiz için Görüntüyü Seçin ve Yapılandırın

Kodumuzdaki ilk adım, uygun görüntüyü seçip Matlab'da analiz için yapılandırmaktır. Herhangi bir dosyayı almamıza ve programa eklememize izin veren uigetfile işlevini kullanarak görüntüyü seçebiliyoruz. Ardından, imread kullanarak görüntüyü okuyoruz ve Matlab'da analiz için yapılandırıyoruz. Seçilen görüntü daha sonra bir alt grafikte görüntülenir.

2. Adım: Eşik ve GUI

Eşik ve GUI
Eşik ve GUI
Eşik ve GUI
Eşik ve GUI

Kodun en başında “uigetfile” kullanılarak bir görüntü seçilir ve ardından bu görüntü bir değişkenle tanımlanır. Değişken daha sonra farklı analizler yürütülürken kodu tanımlamak için kullanılacaktır. Şekilde 2x2'lik bir alt grafik oluşturulmuştur. 1. konumda, orijinal görüntü görüntülenecektir. Kodun sonraki bölümü, eşik ayarlamalarının yapıldığı yerdir. Başlangıçta varsayılan olarak 0,6 eşik değeri kullanılır ve alt grafiğin 2. konumunda görüntülenir. Daha sonra, kullanıcının eşiği korumak mı yoksa ayarlamak mı istediğini belirlemek için bir if ifadesi kullanılır. Kullanıcı, farklı eşik koşullarındaki görüntüyü, kaydırıcıyı ve bir kaydetme düğmesini içeren bir GUI kullanarak eşiği ayarlayabilir. Eşik ayarlandıktan sonra, kullanıcı görüntüyü kaydetmek için kaydet düğmesine tıklayacak ve kullanıcı MATLAB dosyalarında-p.webp

3. Adım: Konturları ve Hücre Dağılımını Çizme

Konturların Çizilmesi ve Hücre Dağılımı
Konturların Çizilmesi ve Hücre Dağılımı
Konturların Çizilmesi ve Hücre Dağılımı
Konturların Çizilmesi ve Hücre Dağılımı

Kodun sonraki kısmı konturları çizer. Hücrelerin kırmızı bir çevre ile çevrelendiği ve başka bir hücrenin üstündeki hücrelerin yeşil renkle çevrelendiği bir döngü vardır. Çerçevelenen görüntü daha sonra etkileşimli bir mesafe çizgisi ile 3. konumda görüntülenir. Bu satır, bir pikselden milimetreye dönüştürücü için kullanıcı tarafından ayarlanan satırdaki piksel sayısını belirleyecektir. Mesafe faktörü daha sonra bölge propları tarafından belirlenen alanla çarpılır ve alan şimdi milimetre kare olarak ifade edilir. Veriler daha sonra hücrelerin alanına göre dağılımını görmek için bir histogram kullanılarak çizilir. Bu histogram daha sonra 4. konumda görüntülenecektir.

Adım 4: Hücre Görüntüsünü Dönüştür

Hücre Görüntüsünü Dönüştür
Hücre Görüntüsünü Dönüştür

Bu adımda gri tonlamalı görüntüyü aldık ve ikilileştirdik, filtreledik ve ters çevirdik. Bu işlevlerin görüntü üzerinde gerçekleştirilmesi, hücrelerle karıştırılabilecek gürültülü pikselleri ortadan kaldırdı ve görüntüyü hücre kenarlarında daha pürüzsüz ve yumuşak hale getirdi. Bu, görüntüdeki hücreleri arka plandan yoğunluğu farklı olan ayırt edilebilir "bloblar" olarak çıkarmak için yapıldı. "Bloblar" yüksek yoğunluklu beyaz görüntülerdi ve arka plan siyahtı. Biraz daha zaman verilseydi, daha doğru ve görüntülerimize daha uygun olması için imbinarize işlevi yerine farklı bir Blob görüntü dönüşümü kullanırdık, ancak işlevi araştırmak ve uygulamak için daha fazla zamana ihtiyacımız vardı.

Adım 5: Hücreleri Say ve Hücre Birleşimini Hesapla

Hücreleri Say ve Hücre Birleşimini Hesapla
Hücreleri Say ve Hücre Birleşimini Hesapla

Kodun bu adımında, görüntüdeki hücre sayısını saymayı amaçladık. Blobların alanlarını hesaplamak için öncelikle zoneprops işlevini kullandık ve alan bizim istediğimiz sınırda olacak şekilde hesaplanmışsa, bir alt grafik üzerinde çizilecektir. Sınırlar, hücre olmayan küçük gürültülü pikselleri veya büyük yoğunlukları kaldırmak için belirlendi. Hücre sayacı daha sonra çizilen ağırlık merkezlerini sayar ve bunları for döngüsündeki sayaca ekler. Hücrelerin alanları belirlendikten sonra izdihamı hesaplayabildik. Koddaki bu adımın temel önemi, hücrelerin birleştiği yeri bulmaktı ve bu, kodun nihai hedefimiz için çok önemliydi. Bunu, her bir blobdaki pikselleri(sum(allAreas)) toplayarak ve ardından onu görüntünün toplam piksel değerine bölerek hesapladık(numel(img)). Bu oran bize izdihamı verir ve eğer araştırmacı tarafından hücrelerin pasajlanma süresinden %80'den büyük olduğu belirlenirse. Mümkün olduğunca kesin ve doğru olmayı hedefledik, ancak sınırlı bir süre içinde yanlışlıklar meydana geldi. Zaman izin verirse, bu filtreleme tekniğini denemek için henüz yeterli araştırma yapılmadığından daha fazla filtreleme tekniği ve/veya bir Hough Dönüşümü gibi blobların sayımını daha doğru hale getirmenin yollarını arardık.

Adım 6: Hücrelerin Yuvarlaklığı

Hücrelerin Yuvarlaklığı
Hücrelerin Yuvarlaklığı
Hücrelerin Yuvarlaklığı
Hücrelerin Yuvarlaklığı

Bir görüntüdeki blobun yuvarlaklığını ölçebilmemiz için önce RGB'den gri tonlamaya dönüştürmemiz, ikilileştirmemiz, ters çevirmemiz ve görüntüyü filtrelememiz gerekir. Bir filtreleme tekniği, ilgilenilen görüntüyü filtreleyen ve bir hücrenin boyutunu temsil etmeyen çok küçük tüm özellikleri veya pikselleri kaldıran bwareaopen işlevini kullanır. Disk şeklinde ve komşuluk 2 olan bir yapılandırma elemanı oluşturulur ve arka planda veya hücrelerdeki boşlukları doldurmak için kullanılır. Ardından, blobları izleyen ve onu bir matriste saklayan bwboundaries işlevini kullanırız. Daha sonra daha net bir görsel olması için görüntüyü farklı renkler kullanarak etiketliyoruz. Ardından, görüntüde bulunan nesne ve delik sayısına göre çalışan bir for döngüsü kullanarak, bu diziye karşılık gelen blobların etrafına bir sınır koyar. Bu döngü bittiğinde, yine görüntüde bulunan nesne ve delik sayısına göre başka bir döngü başlar. Bu sefer, diziden alan gibi belirli özellikleri toplayan ve nesne ve delik sayısını içeren bilgileri depolayan bölge propları işlevini kullanıyoruz. Bu bilgiyi kullanarak, ağırlık merkezi şeklini kullanarak bu nesnelerin alanını ve çevresini hesaplıyoruz. Dairesel bir nesnenin metrik birimini hesapladığımızda sonuçları karşılaştırmak için bir eşik belirlenir ve bu ölçümü hesaplanan merkezlerin yanında metin olarak çizer. Son kod, resimde bulunan farklı hücrelerin yuvarlaklığını gösterecek ve bir değere yakın herhangi bir değer diğerlerinden daha yuvarlak olacaktır. 1 değeri, hücrenin mükemmel şekilde yuvarlak olduğunu ve geçiş için iyi durumda olduğunu gösterir.

Önerilen: