Turinys:
- 1 veiksmas: pasirinkite ir sukonfigūruokite vaizdą analizei
- 2 veiksmas: slenkstis ir GUI
- 3 žingsnis: kontūrų brėžimas ir ląstelių pasiskirstymas
- 4 veiksmas: konvertuokite ląstelės vaizdą
- 5 žingsnis: suskaičiuokite ląsteles ir apskaičiuokite ląstelių susiliejimą
- 6 žingsnis: ląstelių apvalumas
Video: BME 60B smėlio dėžės projektas: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
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
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
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
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ą
Š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ą
Š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
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:
Pasukite smėlio laikrodį kas minutę naudodami servo variklį - „Arduino“: 8 žingsniai
Pasukite smėlio laikrodį kas minutę, naudodami servo variklį - „Arduino“: šioje pamokoje sužinosime, kaip kas 60 sekundžių pasukti mažą (1 minutės) smėlio laikrodį naudojant servo variklį ir „Visuino“. Žiūrėkite demonstracinį vaizdo įrašą
Smėlio tornado mašina: 4 žingsniai
Smėlio tornado mašina: Ei, vaikinai. Esu naujokas, bet vis tiek dalyvausiu konkurse. Tai bus projektas, kaip pasigaminti smėlio tornado mašiną savo namuose. Tai gana paprastas projektas ir nereikalauja tiek daug darbo. Taip pat atkreipkite dėmesį*Visada perskaitykite
Smėlio dėžės projektas: BAC skaičiavimas ir aiškinimas: 6 žingsniai
„Smėlio dėžės“projektas: BAC skaičiavimas ir aiškinimas: pateikė Haarika Gogineni, Hana Schlosser ir Benedict Uiseco Išvedę apskaičiuotą BAC, nurodysime
„VizTimer“: elektroninis smėlio laikrodis: 28 žingsniai (su nuotraukomis)
„VizTimer“: elektroninis smėlio laikrodis: Kai mūsų sūnui buvo maždaug treji ar ketveri metai, pradėjome tikėtis, kad jis viską padarys laiku. Sakyčiau tokius dalykus kaip " Mums reikia eiti per dešimt minučių! &Quot; arba „Pažaisk su tuo sunkvežimiu dar penkias minutes ir duok kam nors kitam
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): 3 žingsniai
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): NEDARYKITE ŠIO NAUDOTI USB! iš visų komentarų sužinojau, kad tai gali pakenkti jūsų kompiuteriui. mano kompiuteris gerai. Naudokite 600 mA 5v telefono įkroviklį. Aš tai naudoju ir jis veikia gerai, ir niekas negali būti sugadintas, jei naudosite apsauginį kištuką, kad sustabdytumėte maitinimą