Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
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
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
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
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
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
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
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:
Automatski EKG- BME 305 Završni projekt Dodatni kredit: 7 koraka
Automatizirani EKG-BME 305 Završni projekt Dodatni kredit: Elektrokardiogram (EKG ili EKG) koristi se za mjerenje električnih signala koje proizvodi srce koje ima otkucaje srca i igra veliku ulogu u dijagnostici i prognozi kardiovaskularnih bolesti. Neki od podataka dobivenih EKG -om uključuju ritam
Creative Switch Project Christophera Serafina: 4 koraka
Creative Switch Project Christophera Serafina: Pozdrav! Za ovaj kreativni projekt prebacivanja odlučio sam pokušati dodati LED svjetla u torbu preko ramena, u ovom slučaju Nintendo 3DS torbicu za nošenje. Obične torbe preko ramena mogle bi biti pomalo dosadne, ali s nekim LED svjetlima zasigurno mogu osvijetliti svaku torbu
DIY Project ARGB LED šesterokutna ploča: 19 koraka
DIY Project ARGB LED šesterokutna ploča: Bok svima, u ovom uputstvu pokazat ću vam kako napraviti adresabilnu RGB šesterokutnu ploču koristeći LED WS2812b (poznate i kao neopikseli). Taj opis ne vrijedi pa provjerite gornji video! Imajte na umu da se adresabilni R
DIY Inventive ART Project Idea sa LED svjetlima i zvukom: 3 koraka
DIY Inventive ART Project Idea sa LED svjetlima i zvukom: U ovom videu pokazat ću vam kako napraviti jedinstveni umjetnički projekt kod kuće pomoću LED trake i zvuka
BME 305 EEG: 4 koraka
BME 305 EEG: Elektroencefalogram (EEG) je uređaj koji se koristi za mjerenje električne aktivnosti mozga subjekta. Ovi testovi mogu biti vrlo korisni u dijagnosticiranju različitih moždanih poremećaja. Kada pokušavate napraviti EEG, potrebni su različiti parametri