Sadržaj:

BME 60B Sandbox Project: 6 koraka
BME 60B Sandbox Project: 6 koraka

Video: BME 60B Sandbox Project: 6 koraka

Video: BME 60B Sandbox Project: 6 koraka
Video: BME Sandbox Project 2024, Juli
Anonim
BME 60B Sandbox Project
BME 60B Sandbox Project

Naš projekt Sandbox ima za cilj pomoći istraživačima na biološkom polju u analizi uzoraka ćelija i saznati stanje njihovih ćelija. Nakon što korisnik unese sliku uzorka svoje ćelije, naš kôd obrađuje sliku kako bi je pripremio za brojanje ćelija pretvarajući sliku u sive i binarne. Kod koristi prag za uklanjanje viška informacija koje se ne odnose na stvarne ćelije kako bi se precizno pronašle ćelijske mase. Nakon prebrojavanja broja ćelija na slici, naš kôd daje veličinu piksela slike, a zatim pronalazi raspodjelu ćelijske površine ucrtavanjem broja ćelija u odnosu na površinu ćelija kako bi korisniku dao ušće, što je postotak površine posude za kulturu prekrivene ćelijama od interesa. Na osnovu ušća, istraživač može odrediti treba li proći ćelije ili ne; prolaženje stanica odnosi se na produljenje života ili broja stanica ili mikroorganizama prenosom dijela kulture na svježi medij za rast, a korisno je kada ćelije postanu prevelike ili ostanu bez hrane. Nakon pokretanja koda i obrade slike, korisnik može odlučiti hoće li prihvatiti ili odbiti rezultate i nastaviti prilagođavati prag za bolje dohvaćanje podataka ako je potrebno.

Korak 1: Odaberite i konfigurirajte sliku za analizu

Odaberite i konfigurirajte sliku za analizu
Odaberite i konfigurirajte sliku za analizu

Prvi korak u našem kodu je odabir odgovarajuće slike i konfiguriranje za analizu u Matlabu. U mogućnosti smo odabrati sliku pomoću funkcije uigetfile koja nam omogućava da zgrabimo bilo koju datoteku i umetnemo je u program. Zatim pomoću imreada čitamo sliku i konfiguriramo je za analizu u Matlabu. Odabrana slika tada se prikazuje na podcrt.

Korak 2: Prag i GUI

Threshold i GUI
Threshold i GUI
Threshold i GUI
Threshold i GUI

Na samom početku koda slika se bira pomoću “uigetfile”, a zatim se ta slika definira varijablom. Varijabla će se tada koristiti za identifikaciju koda pri izvođenju različite analize. 2x2 podcrt je kreiran na slici. Na poziciji 1 će se prikazati originalna slika. Sljedeći odjeljak koda je mjesto gdje se vrši podešavanje pragova. U početku se koristi zadani prag od 0,6 i prikazuje se na poziciji 2 podcrta. Ako se naredba if koristi za određivanje želi li korisnik zadržati prag ili ga prilagoditi. Korisnik tada može podesiti prag pomoću grafičkog sučelja koje uključuje sliku pri različitim uvjetima praga, klizača i gumba za spremanje. Nakon postavljanja praga, korisnik će kliknuti gumb za spremanje za spremanje slike i bit će pohranjena u MATLAB datotekama korisnika kao-p.webp

Korak 3: Iscrtavanje kontura i distribucija ćelija

Iscrtavanje kontura i ćelijska distribucija
Iscrtavanje kontura i ćelijska distribucija
Iscrtavanje kontura i ćelijska distribucija
Iscrtavanje kontura i ćelijska distribucija

Sljedeći dio koda iscrtava konture. Postoji petlja u kojoj su ćelije zatvorene crvenim obodom, a one ćelije koje se nalaze na vrhu druge ćelije označene su zelenom bojom. Zacrtana slika tada se prikazuje na poziciji 3 s interaktivnom linijom udaljenosti. Ova linija će odrediti broj piksela u liniji koji je prilagodio korisnik za pretvarač piksela u milimetre. Faktor udaljenosti se tada množi s površinom određenom regijom regije, a površina se sada izražava u milimetrima na kvadrat. Podaci se zatim iscrtavaju pomoću histograma kako bi se vidjela raspodjela ćelija po površini. Ovaj histogram će se zatim prikazati na poziciji 4.

Korak 4: Pretvorite ćelijsku sliku

Pretvorite sliku ćelije
Pretvorite sliku ćelije

U ovom koraku smo uzeli sliku u sivim tonovima i binarno je filtrirali i obrnuli. Izvođenjem ovih funkcija na slici uklonjeni su bučni pikseli koji se mogu zamijeniti s ćelijama i slika je postala glatkijom i mekšom oko rubova ćelije. To je učinjeno kako bi se ćelije na slici izdvojile kao prepoznatljive "mrlje" koje su se intenzitetom razlikovale od pozadine. "Mrlje" su bile bijele slike visokog intenziteta, a pozadina je bila crna. Da nam je dozvoljeno malo više vremena, koristili bismo drugu konverziju Blob slike umjesto funkcije imbinarize kako bismo bili precizniji i prikladniji za naše slike, ali trebalo nam je više vremena za istraživanje i implementaciju funkcije.

Korak 5: Prebrojite ćelije i izračunajte povezivanje ćelija

Prebrojavanje ćelija i izračunavanje povezivanja ćelija
Prebrojavanje ćelija i izračunavanje povezivanja ćelija

U ovom koraku koda nastojali smo prebrojati broj ćelija koje su na slici. Prvenstveno smo koristili funkciju regionprops za izračunavanje površina mrlja, a ako je površina izračunata na našoj željenoj granici, iscrtala bi se na potcrtavanju. Granice su postavljene kako bi se uklonili mali bučni pikseli ili veliki intenziteti koji nisu ćelije. Brojač ćelija tada bi brojao centroide koji su zatim iscrtani i dodavao ih brojaču u for petlji. Nakon što su određene površine ćelija, mogli smo izračunati ušće. Glavna važnost ovog koraka u kodu bila je pronaći ušće ćelija, što je bilo ključno za naš krajnji cilj koda. To smo učinili izračunavanjem zbrajanjem piksela (zbir (allAreas)) u svakoj mrlji, a zatim dijeljenjem ukupne vrijednosti piksela slike (numel (img)). Ovaj omjer bi nam dao ušće i ako bi se utvrdilo da je veći od 80%, vrijeme je da istraživač prođe ćelije. Cilj nam je bio biti što precizniji i precizniji, ali s ograničenim vremenom došlo je do nepreciznosti. Da je vrijeme dopuštalo, tražili bismo načine da učinimo prebrojavanje mrlja preciznijim, poput više tehnika filtriranja i/ili Hough Transform jer još uvijek nije provedeno dovoljno istraživanja da se isproba ta tehnika filtriranja

Korak 6: Zaobljenost ćelija

Zaobljenost ćelija
Zaobljenost ćelija
Zaobljenost ćelija
Zaobljenost ćelija

Prije nego što možemo izmjeriti zaobljenost mrlja na slici, moramo pretvoriti iz RGB -a u nijanse sive, binarno, obrnuti i filtrirati sliku. Tehnika filtriranja koristi funkciju bwareaopen koja filtrira sliku od interesa i uklanja sve specifikacije ili piksele koji su premali koji ne predstavljaju veličinu ćelije. Strukturirajući element je kreiran u obliku diska i susjedstva 2 i koristi se za popunjavanje praznina u pozadini ili unutar ćelija. Zatim koristimo funkciju bwboundaries koja prati mrlje i sprema ih u matricu. Zatim sliku označavamo različitim bojama kako bi postala jasnija vizualizacija. Zatim, pomoću for petlje koja radi prema broju objekata i rupa na slici, postavlja granicu oko mrlja koje odgovaraju ovom nizu. Nakon što se ova petlja završi, započinje druga petlja, opet prema broju objekata i rupa pronađenih na slici. Ovaj put koristimo funkciju regionprops koja skuplja određena svojstva poput područja iz niza i pohranjuje informacije koje sadrže broj objekata i rupa. Koristeći ove informacije, izračunavamo površinu i obod ovih objekata pomoću oblika centroida. Prag se postavlja za usporedbu rezultata nakon što izračunamo metričku jedinicu kružnog objekta i iscrtamo ovo mjerenje kao tekst pored izračunatih centroida. Konačni kôd prikazat će zaobljenost različitih ćelija pronađenih na slici, a sve vrijednosti bliske vrijednosti jedna bit će okruglije od ostalih. Vrijednost 1 znači da je ćelija savršeno okrugla i da je u dobrom stanju za prolazak.

Preporučuje se: