Mündəricat:

BME 60B Sandbox Layihəsi: 6 Addım
BME 60B Sandbox Layihəsi: 6 Addım

Video: BME 60B Sandbox Layihəsi: 6 Addım

Video: BME 60B Sandbox Layihəsi: 6 Addım
Video: UCI BME 60A: Heart Rate Monitor Project 2024, Noyabr
Anonim
BME 60B Sandbox Layihəsi
BME 60B Sandbox Layihəsi

Sandbox Layihəmiz, bioloji sahədə tədqiqatçılara hüceyrə nümunələrini təhlil etməyə və hüceyrələrinin vəziyyətini öyrənməyə kömək etməyi hədəfləyir. İstifadəçi hüceyrə nümunəsinin bir görüntüsünü daxil etdikdən sonra, kodumuz görüntünü boz rəngə və ikiliyə çevirərək hüceyrə saymağa hazır vəziyyətə gətirir. Kod, hüceyrə kütlələrini dəqiq tapmaq üçün faktiki hüceyrələrə aid olmayan artıq məlumatları çıxarmaq üçün eşikdən istifadə edir. Şəkildəki hüceyrələrin sayını hesabladıqdan sonra kodumuz, görüntünün piksel ölçüsünü verir və sonra istifadəçiyə qovuşma nöqtəsini vermək üçün hüceyrələrin sayını hüceyrələrin sahəsinə görə quraraq hüceyrə sahəsinin paylanmasını tapır. maraqlanan hüceyrələr tərəfindən örtülmüş bir mədəniyyət qabının səthinin yüzdəsi. Araşdırmaçı, qovuşma nöqtəsinə əsaslanaraq hüceyrələrin keçib -keçməyəcəyini təyin edə bilər; Hüceyrələrin keçməsi, mədəniyyətin bir hissəsini təzə bir böyümə mühitinə köçürərək həyatını və ya hüceyrə və ya mikroorqanizmlərin sayını genişləndirmək deməkdir və hüceyrələr çox böyüdükdə və ya qidalar tükəndikdə faydalıdır. Kodu işə saldıqdan və görüntünü işlədikdən sonra, istifadəçi nəticələri qəbul edib -etməyəcəyinə qərar verə bilər və lazım gələrsə məlumatların daha yaxşı alınması üçün ərəfəni tənzimləməyə davam edə bilər.

Addım 1: Təhlil üçün Şəkili seçin və Konfiqurasiya edin

Təhlil üçün Şəkli seçin və Konfiqurasiya edin
Təhlil üçün Şəkli seçin və Konfiqurasiya edin

Kodumuzdakı ilk addım uyğun görüntüyü seçmək və onu Matlab -da təhlil etmək üçün konfiqurasiya etməkdir. Hər hansı bir faylı tutub proqrama daxil etməyimizə imkan verən uigetfile funksiyasından istifadə edərək görüntünü seçə bilərik. Sonra imread istifadə edərək görüntünü oxuyuruq və Matlabda analiz üçün konfiqurasiya edirik. Seçilən şəkil daha sonra alt planda göstərilir.

Addım 2: Eşik və GUI

Eşik və GUI
Eşik və GUI
Eşik və GUI
Eşik və GUI

Kodun əvvəlində "uigetfile" istifadə edərək bir şəkil seçilir və sonra bu görüntünü dəyişənlə təyin edir. Dəyişən daha sonra fərqli analizlər apararkən kodu müəyyən etmək üçün istifadə ediləcək. Şəkildə 2x2 ölçülü alt sahə yaradılmışdır. 1 -ci mövqedə orijinal şəkil göstəriləcək. Kodun növbəti bölməsi, eşiklərin tənzimləndiyi yerdir. Başlanğıcda 0.6 həddi olan bir defolt istifadə olunur və alt sahənin 2 -ci mövqeyində göstərilir. İstifadəçinin həddi saxlamaq və ya tənzimləmək istədiyini müəyyən etmək üçün if-ifadəsi istifadə olunur. İstifadəçi, fərqli eşik şərtlərindəki şəkli, kaydırıcıyı və bir saxlama düyməsini ehtiva edən bir GUI istifadə edərək həddi tənzimləyə bilər. Eşik təyin edildikdən sonra istifadəçi görüntünü saxlamaq üçün saxla düyməsini basacaq və istifadəçilər MATLAB fayllarında-p.webp

Addım 3: Konturların qurulması və Hüceyrə Dağılımı

Konturların qurulması və hüceyrə paylanması
Konturların qurulması və hüceyrə paylanması
Konturların qurulması və hüceyrə paylanması
Konturların qurulması və hüceyrə paylanması

Kodun növbəti hissəsi konturları qurur. Hüceyrələrin qırmızı bir perimetrlə əhatə olunduğu bir döngə var və başqa bir hüceyrənin üstündə olan hüceyrələr yaşıl rənglə təsvir edilmişdir. Təsvir edilən görüntü daha sonra interaktiv məsafə xətti ilə 3 -cü mövqedə göstərilir. Bu xətt istifadəçinin piksel -millimetr çeviricisi üçün düzəltdiyi sətirdəki piksellərin sayını təyin edəcək. Məsafə faktoru daha sonra bölgə sahələri tərəfindən təyin olunan sahə ilə vurulur və sahə indi milimetr kvadratla ifadə edilir. Məlumat daha sonra hüceyrələrin ərazisinə görə paylanmasını görmək üçün bir histogram istifadə edərək tərtib edilir. Bu histogram daha sonra 4 -cü mövqedə göstəriləcək.

Addım 4: Hüceyrə Görüntüsünü Dönüştürün

Hüceyrə şəklini çevir
Hüceyrə şəklini çevir

Bu addımda boz rəngli görüntünü götürdük və binarlaşdırdıq, süzdük və ters çevirdik. Bu funksiyaları görüntü üzərində yerinə yetirmək hüceyrələr üçün səhv ola biləcək səs -küylü pikselləri aradan qaldırdı və hüceyrənin kənarında görüntünü daha hamar və yumşaq etdi. Bu, şəkildəki hüceyrələri arxa plandan intensivliyi ilə fərqlənən "ləkələr" olaraq çıxarmaq üçün edildi. "Blobs" yüksək intensivlikli ağ şəkillər idi və arxa plan qara idi. Bir az daha icazə verilsəydi, şəkillərimizə daha dəqiq və daha uyğun olması üçün imbinarize funksiyası yerinə fərqli bir Blob şəkil çevrilməsindən istifadə edərdik, ancaq funksiyanı araşdırmaq və həyata keçirmək üçün daha çox vaxta ehtiyacımız var idi.

Addım 5: Hüceyrələri Sayın və Hüceyrə Birləşməsini Hesablayın

Hüceyrələri sayın və hüceyrə birləşməsini hesablayın
Hüceyrələri sayın və hüceyrə birləşməsini hesablayın

Kodun bu addımında, şəkildəki hüceyrələrin sayını hesablamağı hədəflədik. Blobların sahələrini hesablamaq üçün ilk növbədə regionprops funksiyasından istifadə etdik və əgər ərazi bizim istədiyimiz sərhəddə hesablansaydı, bu bir alt plana çəkiləcəkdi. Sərhədlər kiçik səs -küylü pikselləri və ya hüceyrə olmayan böyük intensivlikləri aradan qaldırmaq üçün təyin edildi. Hüceyrə sayğacı daha sonra qurulan sentroidləri sayar və onları döngədəki sayaca əlavə edərdi. Hüceyrələrin sahələri müəyyən edildikdən sonra birləşmə hesablaya bildik. Koddakı bu addımın əsas əhəmiyyəti, hüceyrələrin birləşməsini tapmaq idi və bu, kodun son məqsədimiz üçün əsas idi. Bunu hər bir bloqdakı pikselləri (cəm (allAreas)) toplayaraq və sonra görüntünün ümumi piksel dəyərinə (ədəd (img)) bölməklə hesablayaraq etdik. Bu nisbət bizə bir araya gələr və əgər hüceyrələrin tədqiqatçı tərəfindən keçmə vaxtının 80% -dən çox olduğu təyin olunarsa. Mümkün qədər dəqiq və dəqiq olmağı hədəflədik, lakin məhdud zamanla bu qədər qeyri -dəqiqlik meydana gəldi. Vaxt imkan verərsə, daha çox süzmə texnikası və/və ya Hough Transformu kimi lövhələrin sayılmasını daha dəqiq etmək yollarını axtarardıq, çünki bu filtrasiya texnikasını sınamaq üçün hələ kifayət qədər araşdırma aparılmamışdır.

Addım 6: Hüceyrələrin yuvarlaqlığı

Hüceyrələrin yuvarlaqlığı
Hüceyrələrin yuvarlaqlığı
Hüceyrələrin yuvarlaqlığı
Hüceyrələrin yuvarlaqlığı

Bir görüntüdə ləkənin yuvarlaqlığını ölçə bilmədən əvvəl, RGB -dən gri tonlamaya çevirməliyik, görüntünün ölçüsünü dəyişdirmə, ters çevirmə və süzgəcdən keçirməliyik. Bir filtrasiya texnikası, maraq görüntüsünü süzən və hüceyrə ölçüsünü əks etdirməyən çox kiçik olan hər hansı bir xüsusiyyəti və ya pikseli silmək funksiyasından istifadə edir. Bir disk forması və 2 -lik bir məhəllə ilə qurulmuş bir element, arxa planda və ya hüceyrələrdəki boşluqları doldurmaq üçün istifadə olunur. Sonra blobları izləyən və onu matrisə saxlayan bwboundaries funksiyasından istifadə edirik. Daha sonra fərqli rənglərdən istifadə edərək görüntünü etiketləyirik ki, daha aydın vizual olsun. Daha sonra, şəkildəki obyektlərin və deliklərin sayına görə işləyən for döngəsindən istifadə edərək, bu cərgəyə uyğun olan blobların ətrafında sərhəd qoyur. Bu döngə bitdikdən sonra, şəkildəki obyektlərin və deliklərin sayına görə başqa bir döngə başlayır. Bu dəfə, sıra kimi sahə kimi müəyyən xüsusiyyətləri toplayan və obyektlərin və deliklərin sayını ehtiva edən məlumatları saxlayan regionprops funksiyasından istifadə edirik. Bu məlumatları istifadə edərək, bu cisimlərin sahəsini və perimetrini centroid şəklində istifadə edərək hesablayırıq. Dairəvi bir cismin metrik vahidini hesabladıqdan və nəticəni hesablanmış sentroidlərin yanında mətn olaraq qoyduqdan sonra nəticələri müqayisə etmək üçün bir eşik təyin olunur. Son kod, şəkildəki fərqli hüceyrələrin yuvarlaqlığını göstərəcək və dəyərinə yaxın olan hər hansı bir dəyər digərlərindən daha yuvarlaq olacaq. 1 dəyəri, hüceyrənin mükəmməl yuvarlaq olduğunu və keçmək üçün yaxşı vəziyyətdə olduğunu bildirir.

Tövsiyə: