Turinys:

BME 60B smėlio dėžės projektas: 6 žingsniai
BME 60B smėlio dėžės projektas: 6 žingsniai

Video: BME 60B smėlio dėžės projektas: 6 žingsniai

Video: BME 60B smėlio dėžės projektas: 6 žingsniai
Video: BME 60B Heart Rate Monitor Project with MATLAB 2024, Liepa
Anonim
BME 60B smėlio dėžės projektas
BME 60B smėlio dėžės projektas

Mūsų smėlio dėžės projekto tikslas - padėti biologinės srities tyrėjams analizuoti ląstelių mėginius ir išsiaiškinti jų ląstelių sąlygas. Kai vartotojas įveda savo ląstelės pavyzdžio vaizdą, mūsų kodas apdoroja vaizdą, kad jis būtų paruoštas ląstelių skaičiavimui, paversdamas vaizdą pilkos spalvos ir dvejetainiu. Kodas naudoja slenkstį, kad pašalintų perteklinę informaciją, nesusijusią su tikromis ląstelėmis, kad būtų galima tiksliai rasti ląstelių masę. Suskaičiavus paveikslėlio ląstelių skaičių, mūsų kodas pateikia vaizdo pikselių dydį ir tada nustato ląstelių ploto pasiskirstymą, nubraižydamas ląstelių skaičių, palyginti su ląstelių plotu, kad vartotojui būtų suteikta santaka. kultūros indo paviršiaus, kuris yra padengtas dominančiomis ląstelėmis, paviršiaus procentinė dalis. Remdamasis susiliejimu, tyrėjas gali nustatyti, ar ląstelės turi būti perduodamos, ar ne; ląstelių praleidimas reiškia ląstelių ar mikroorganizmų gyvenimo ar skaičiaus išplėtimą, kai kurias kultūras perkeliant į naują augimo terpę, ir tai naudinga, kai ląstelės užauga per didelės arba baigiasi maistas. Paleidęs kodą ir apdorojęs vaizdą, vartotojas gali nuspręsti, ar priimti ar atmesti rezultatus, ir prireikus koreguoti slenkstį, kad būtų galima geriau gauti duomenis.

1 veiksmas: pasirinkite ir sukonfigūruokite vaizdą analizei

Pasirinkite ir sukonfigūruokite vaizdą analizei
Pasirinkite ir sukonfigūruokite vaizdą analizei

Pirmasis mūsų kodo žingsnis yra pasirinkti tinkamą vaizdą ir sukonfigūruoti jį analizei „Matlab“. Mes galime pasirinkti vaizdą naudodami uigetfile funkciją, kuri leidžia mums patraukti bet kokį failą ir įterpti jį į programą. Tada, naudodami „imread“, mes perskaitome vaizdą ir sukonfigūruojame jį analizuoti „Matlab“. Tada pasirinktas vaizdas rodomas papildomame sklype.

2 veiksmas: slenkstis ir GUI

Slenkstis ir GUI
Slenkstis ir GUI
Slenkstis ir GUI
Slenkstis ir GUI

Pačioje kodo pradžioje vaizdas pasirenkamas naudojant „uigetfile“ir tada apibrėžiant tą vaizdą kintamuoju. Tada kintamasis bus naudojamas kodui identifikuoti atliekant skirtingą analizę. Paveiksle sukurtas 2x2 poskyris. 1 pozicijoje bus rodomas originalus vaizdas. Kitame kodo skyriuje atliekami slenksčių koregavimai. Iš pradžių naudojama numatytoji 0,6 slenksčio reikšmė ir ji rodoma 2 poskyrio vietoje. Tada teiginys „if“naudojamas norint nustatyti, ar vartotojas nori išlaikyti slenkstį, ar jį koreguoti. Vartotojas gali koreguoti slenkstį naudodamas GUI, kurioje yra vaizdas esant skirtingoms slenksčio sąlygoms, slankiklį ir išsaugojimo mygtuką. Nustačius slenkstį, vartotojas spustelės išsaugojimo mygtuką, kad išsaugotų vaizdą, ir jis bus saugomas vartotojų MATLAB failuose kaip-p.webp

3 žingsnis: kontūrų brėžimas ir ląstelių pasiskirstymas

Kontūrų brėžimas ir ląstelių pasiskirstymas
Kontūrų brėžimas ir ląstelių pasiskirstymas
Kontūrų brėžimas ir ląstelių pasiskirstymas
Kontūrų brėžimas ir ląstelių pasiskirstymas

Kita kodo dalis nubrėžia kontūrus. Yra kilpa, kurioje ląstelės yra uždarytos raudonu perimetru, o tos ląstelės, kurios yra kitos ląstelės viršuje, yra pažymėtos žaliai. Tada kontūrinis vaizdas rodomas 3 pozicijoje su interaktyvia atstumo linija. Ši eilutė nustatys pikselių skaičių linijoje, kurią vartotojas pakoregavo pagal pikselių ir milimetrų keitiklį. Tada atstumo koeficientas padauginamas iš regiono viršūnių nustatyto ploto, o plotas dabar išreiškiamas milimetrais kvadratais. Tada duomenys nubraižomi naudojant histogramą, kad būtų matomas ląstelių pasiskirstymas pagal jų plotą. Tada ši histograma bus rodoma 4 padėtyje.

4 veiksmas: konvertuokite ląstelės vaizdą

Konvertuoti langelio vaizdą
Konvertuoti langelio vaizdą

Šiame žingsnyje mes paėmėme pilkos spalvos vaizdą ir dvejetainiu būdu, filtravome ir apvertėme. Atliekant šias funkcijas vaizde, pašalinami triukšmingi pikseliai, kuriuos galima supainioti su ląstelėmis, ir vaizdas tampa lygesnis ir minkštesnis aplink langelio kraštus. Tai buvo padaryta norint išgauti paveikslėlyje esančias ląsteles kaip išskirtines „dėmeles“, kurių intensyvumas skyrėsi nuo fono. „Blobs“buvo didelio intensyvumo balti vaizdai, o fonas buvo juodas. Jei būtų leista šiek tiek daugiau laiko, būtume naudoję kitokį „Blob“vaizdo konvertavimą, o ne imbinarizavimo funkciją, kad būtume tikslesni ir labiau atitiktų mūsų vaizdus, tačiau mums reikėjo daugiau laiko tyrinėti ir įgyvendinti šią funkciją.

5 žingsnis: suskaičiuokite ląsteles ir apskaičiuokite ląstelių susiliejimą

Skaičiuokite ląsteles ir apskaičiuokite ląstelių susiliejimą
Skaičiuokite ląsteles ir apskaičiuokite ląstelių susiliejimą

Šiame kodo žingsnyje siekėme suskaičiuoti paveikslėlyje esančių langelių skaičių. Mes pirmiausia naudojome funkciją regionprops, kad apskaičiuotume burbuliukų plotus ir, jei apskaičiuota, kad plotas yra mūsų norimoje riboje, jis būtų nubrėžtas ant sklypo. Ribos buvo nustatytos siekiant pašalinti mažus triukšmingus pikselius ar didelius intensyvumus, kurie nebuvo ląstelės. Tada ląstelių skaitiklis suskaičiuotų tada nubraižytus centrinius ir pridėtų juos prie skaitiklio for cikle. Kai buvo nustatyti ląstelių plotai, galėjome apskaičiuoti santaką. Pagrindinė šio kodo žingsnio svarba buvo rasti ląstelių santaką ir tai buvo esminis mūsų galutiniam kodo tikslui. Mes tai padarėme apskaičiuodami susumavę kiekvienos dėmės pikselius (sum (allAreas)) ir tada padaliję iš visos vaizdo taškų vertės (numel (img)). Šis santykis suteiktų mums susiliejimą ir, jei būtų nustatyta, kad jis yra didesnis nei 80%, nei laikas tyrėjui perduoti ląsteles. Siekėme būti kuo tikslesni ir tikslesni, tačiau per ribotą laiką taip pasitaikė netikslumų. Jei būtų leista laiko, būtume ieškoję būdų, kaip patobulinti skaičiavimą, pvz., Daugiau filtravimo metodų ir (arba) „Hough Transform“, nes dar nebuvo atlikta pakankamai tyrimų, kad būtų galima išbandyti tą filtravimo metodą.

6 žingsnis: ląstelių apvalumas

Ląstelių apvalumas
Ląstelių apvalumas
Ląstelių apvalumas
Ląstelių apvalumas

Kad galėtume išmatuoti dėmių apvalumą vaizde, turime konvertuoti iš RGB į pilkų atspalvių, binarizuoti, apversti ir filtruoti vaizdą. Filtravimo metodas naudoja funkciją „bwareaopen“, kuri filtruoja dominantį vaizdą ir pašalina visas specifikacijas ar taškus, kurie yra per maži ir neatspindi langelio dydžio. Sukuriamas struktūrinis elementas, kurio disko forma ir 2 apylinkės, ir jis naudojamas užpildyti visas spragas fone arba ląstelėse. Tada mes naudojame funkciją bwboundaries, kuri seka blobus ir išsaugo juos matricoje. Tada vaizdą žymime skirtingomis spalvomis, kad vaizdas taptų aiškesnis. Toliau, naudodama for for ciklą, kuris veikia pagal paveikslėlyje rastų objektų ir skylių skaičių, jis nustato ribą aplink šį masyvą atitinkančius blobus. Kai ši kilpa baigiasi, prasideda kita kilpa, vėlgi pagal paveikslėlyje rastų objektų ir skylių skaičių. Šį kartą mes naudojame funkciją regionprops, kuri renka tam tikras savybes, tokias kaip plotas iš masyvo, ir saugo informaciją, kurioje yra objektų ir skylių skaičius. Naudodamiesi šia informacija, mes apskaičiuojame šių objektų plotą ir perimetrą, naudodami centroidinę formą. Norint palyginti rezultatus, nustatoma slenkstis, kai apskaičiuojame apskrito objekto metrinį vienetą ir nubraižome šį matavimą kaip tekstą šalia apskaičiuotų centroidų. Galutinis kodas parodys skirtingų paveikslėlyje esančių langelių apvalumą, o visos vertės, artimos vienai vertei, bus labiau apvalios nei kitos. Reikšmė 1 reiškia, kad ląstelė yra visiškai apvali ir yra geros būklės.

Rekomenduojamas: