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, Srpanj
Anonim
BME 60B Projekt pješčanika
BME 60B Projekt pješčanika

Naš projekt Sandbox ima za cilj pomoći istraživačima na biološkom polju u analizi staničnih uzoraka i saznati stanje njihovih stanica. 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 točno pronašle ćelijske mase. Nakon prebrojavanja broja ćelija na slici, naš kôd daje veličinu piksela slike, a zatim pronalazi raspodjelu stanične površine ucrtavajući broj ćelija u odnosu na površinu ćelija kako bi korisniku dao ušće, što je postotak površine posude za kulturu prekrivene stanicama od interesa. Na temelju ušća, istraživač može odrediti treba li stanice proći 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 stanice postanu prevelike ili ostanu bez hrane. Nakon pokretanja koda i obrade slike, korisnik može odlučiti hoće li prihvatiti ili odbiti rezultate te nastaviti podeš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. Sliku možemo odabrati pomoću funkcije uigetfile koja nam omogućuje 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

Prag i GUI
Prag i GUI
Prag i GUI
Prag i GUI

Na samom početku koda slika se bira pomoću "uigetfile", a zatim se definira ta slika s varijablom. Varijabla će se tada koristiti za identifikaciju koda pri izvođenju različite analize. Na slici je napravljen podcrt 2x2. Na položaju 1 prikazat će se izvorna 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 utvrđ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 ona će biti pohranjena u MATLAB datotekama korisnika kao-p.webp

Korak 3: Iscrtavanje kontura i distribucija stanica

Iscrtavanje kontura i distribucija stanica
Iscrtavanje kontura i distribucija stanica
Iscrtavanje kontura i distribucija stanica
Iscrtavanje kontura i distribucija stanica

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

Korak 4: Pretvorite staničnu sliku

Pretvorite staničnu sliku
Pretvorite staničnu sliku

U ovom smo koraku snimili sliku u sivim tonovima te je binarno, filtrirali i obrnuli. Izvođenjem ovih funkcija na slici uklonjeni su bučni pikseli koji bi se mogli zamijeniti s ćelijama te je slika postala glatkijom i mekšom oko rubova ćelije. To je učinjeno kako bi se stanice 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 dopušteno malo više vremena, koristili bismo drugu konverziju Blob slike umjesto funkcije imbinarize kako bismo bili točniji 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 udio ćelija

Brojanje ćelija i izračunavanje ulaza stanica
Brojanje ćelija i izračunavanje ulaza stanica

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

Korak 6: Zaobljenost stanica

Zaobljenost stanica
Zaobljenost stanica
Zaobljenost stanica
Zaobljenost stanica

Prije nego što možemo izmjeriti zaobljenost mrlja na slici, moramo pretvoriti iz RGB -a u nijanse sive, binarnizirati, obrnuti i filtrirati sliku. Tehnika filtriranja koristi funkciju bwareaopen koja filtrira sliku od interesa i uklanja sve premale specifikacije ili piksele koji ne predstavljaju veličinu ćelije. Strukturirajući element izrađen je 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 ova petlja završi, započinje druga petlja, opet prema broju objekata i rupa 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. Pomoću ovih podataka 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 prolaz.

Preporučeni: