Përmbajtje:

Projekti BME 60B Sandbox: 6 hapa
Projekti BME 60B Sandbox: 6 hapa

Video: Projekti BME 60B Sandbox: 6 hapa

Video: Projekti BME 60B Sandbox: 6 hapa
Video: UCI BME 60A: Heart Rate Monitor Project 2024, Korrik
Anonim
Projekti BME 60B Sandbox
Projekti BME 60B Sandbox

Projekti ynë Sandbox synon të ndihmojë studiuesit në fushën biologjike të analizojnë mostrat e qelizave dhe të zbulojnë kushtet e qelizave të tyre. Pasi përdoruesi fut një imazh të mostrës së qelizës së tij, kodi ynë përpunon imazhin për ta bërë gati për numërimin e qelizave duke e kthyer imazhin në shkallë gri dhe binare. Kodi përdor pragun për të hequr informacionin e tepërt që nuk ka të bëjë me qelizat aktuale për të gjetur me saktësi masat qelizore. Pas numërimit të numrit të qelizave në figurë, kodi ynë jep madhësinë e pikselit të figurës dhe më pas gjen shpërndarjen e zonës së qelizës duke vizatuar numrin e qelizave kundrejt zonës së qelizave në mënyrë që t'i japë përdoruesit bashkimin, që është përqindja e sipërfaqes së një pjate të kulturës që mbulohet nga qelizat e interesit. Bazuar në bashkimin, studiuesi mund të përcaktojë nëse qelizat duhet të kalohen ose jo; kalimi i qelizave i referohet zgjerimit të jetës ose numrit të qelizave ose mikroorganizmave duke transferuar një pjesë të kulturës në një mjedis të ri të rritjes dhe është e dobishme kur qelizat rriten shumë ose mbarojnë ushqimin. Pas ekzekutimit të kodit dhe përpunimit të figurës, përdoruesi mund të vendosë nëse i pranon ose refuzon rezultatet dhe vazhdon të rregullojë pragun për marrjen më të mirë të të dhënave nëse është e nevojshme.

Hapi 1: Zgjidhni dhe Konfiguroni Imazhin për Analizë

Zgjidhni dhe Konfiguroni Imazhin për Analizë
Zgjidhni dhe Konfiguroni Imazhin për Analizë

Hapi i parë në kodin tonë është zgjedhja e imazhit të duhur dhe konfigurimi i tij për analizë në Matlab. Ne jemi në gjendje të zgjedhim imazhin duke përdorur funksionin uigetfile i cili na lejon të kapim çdo skedar dhe ta fusim atë në program. Pastaj, duke përdorur imread ne lexojmë imazhin dhe e konfigurojmë atë për analizë në Matlab. Imazhi i zgjedhur më pas shfaqet në një nënplot.

Hapi 2: Pragu dhe GUI

Pragu dhe GUI
Pragu dhe GUI
Pragu dhe GUI
Pragu dhe GUI

Në fillim të kodit një imazh zgjidhet duke përdorur "uigetfile" dhe më pas duke e përcaktuar atë imazh me një ndryshore. Më pas variabla do të përdoret për të identifikuar kodin kur kryeni analiza të ndryshme. Një nënplot 2x2 krijohet në figurë. Në pozicionin 1, imazhi origjinal do të shfaqet. Seksioni tjetër i kodit është vendi ku bëhen rregullimet e pragjeve. Fillimisht përdoret një parazgjedhje e një pragu prej 0.6 dhe shfaqet në pozicionin 2 të nënplotës. Një deklaratë if përdoret më pas për të përcaktuar nëse përdoruesi dëshiron të mbajë pragun ose ta rregullojë atë. Përdoruesi mund të rregullojë pragun duke përdorur një GUI i cili përfshin imazhin në kushte të ndryshme të pragut, rrëshqitësin dhe një buton të ruajtjes. Pasi të jetë vendosur pragu, atëherë përdoruesi do të klikojë butonin ruaj për të ruajtur imazhin dhe do të ruhet në skedarët MATLAB të përdoruesve si-p.webp

Hapi 3: Hartimi i kontureve dhe shpërndarja e qelizave

Komplotimi i kontureve dhe shpërndarja e qelizave
Komplotimi i kontureve dhe shpërndarja e qelizave
Komplotimi i kontureve dhe shpërndarja e qelizave
Komplotimi i kontureve dhe shpërndarja e qelizave

Pjesa tjetër e kodit paraqet konturet. Ekziston një lak në të cilin qelizat janë të mbyllura me një perimetër të kuq, dhe ato qeliza që janë në majë të një qelize tjetër është e përshkruar me ngjyrë të gjelbër. Imazhi i përvijuar më pas shfaqet në pozicionin 3 me një linjë ndërvepruese të distancës. Kjo linjë do të përcaktojë numrin e pikselëve në rresht të përshtatur nga përdoruesi për një konvertues piksel në milimetër. Faktori i distancës shumëzohet më pas zona e përcaktuar nga proporcionet e rajonit dhe zona tani shprehet në milimetra në katror. Të dhënat më pas vizatohen duke përdorur një histogram për të parë shpërndarjen e qelizave sipas zonës së tij. Ky histogram do të shfaqet më pas në pozicionin 4.

Hapi 4: Konvertoni imazhin e qelizës

Shndërroni imazhin e qelizës
Shndërroni imazhin e qelizës

Në këtë hap ne morëm imazhin e shkallës gri dhe e binarizuam, filtruam dhe përmbysëm atë. Kryerja e këtyre funksioneve në imazh hoqi piksele të zhurmshme që mund të ngatërrohen me qelizat dhe e bënë imazhin më të lëmuar dhe të butë rreth skajeve të qelizës. Kjo është bërë për të nxjerrë qelizat në imazh si "blobe" të dallueshme që ndryshonin në intensitet nga sfondi. "Blobs" ishin imazhe të bardha me intensitet të lartë dhe sfondi ishte i zi. Nëse do të lejohej pak më shumë kohë, ne do të kishim përdorur një shndërrim të ndryshëm të imazhit Blob në vend të funksionit të imbinarizimit për të qenë më të saktë dhe më të përshtatshëm për imazhet tona, por na duhej më shumë kohë për të hulumtuar dhe zbatuar funksionin.

Hapi 5: Numëroni qelizat dhe llogaritni bashkimin e qelizave

Numëroni qelizat dhe llogaritni bashkimin e qelizave
Numëroni qelizat dhe llogaritni bashkimin e qelizave

Në këtë hap të kodit, ne synuam të numëronim numrin e qelizave që ishin në imazh. Ne kemi përdorur kryesisht funksionin regionprops për të llogaritur zonat e blloqeve dhe nëse zona llogaritet të jetë në kufirin tonë të dëshiruar do të vizatohej në një nënplot. Kufijtë u vendosën për të hequr piksele të vogla të zhurmshme ose intensitete të mëdha që nuk ishin qeliza. Numëruesi i qelizave do të numërojë centroidët që ishin vizatuar më pas dhe i shtonte ato në numëruesin në lakun for. Pasi u përcaktuan zonat e qelizave ne ishim në gjendje të llogaritnim bashkimin. Rëndësia kryesore e këtij hapi në kod ishte gjetja e bashkimit të qelizave dhe kjo ishte thelbësore për qëllimin tonë përfundimtar të kodit. Ne e bëmë këtë duke llogaritur duke përmbledhur pikselët (shuma (allAreas)) në secilën pikë dhe pastaj duke e ndarë atë me vlerën totale të pikselëve të figurës (numel (img)). Ky raport do të na jepte bashkimin dhe nëse do të përcaktohej të ishte më i madh se 80% sesa është koha që qelizat të kalohen nga studiuesi. Ne synuam të ishim sa më të saktë dhe të saktë, por me kohën e kufizuar kështu ndodhi pasaktësi. Nëse do të lejohej koha, ne do të kishim kërkuar mënyra për ta bërë numërimin e pikave më të sakta, të tilla si më shumë teknika filtrimi dhe/ose një Hough Transform pasi nuk ishte bërë ende kërkim i mjaftueshëm për të provuar atë teknikë filtrimi

Hapi 6: Rrumbullakësia e qelizave

Rrumbullakësia e qelizave
Rrumbullakësia e qelizave
Rrumbullakësia e qelizave
Rrumbullakësia e qelizave

Para se të jemi në gjendje të matim rrumbullakosjen e njollës në një imazh, ne duhet të konvertojmë nga RGB në shkallën gri, të binarizojmë, përmbysim dhe filtrojmë imazhin. Një teknikë filtrimi është duke përdorur funksionin bwareaopen, i cili filtron imazhin e interesit dhe heq çdo specifikim ose piksel që është shumë i vogël që nuk përfaqëson madhësinë e një qelize. Një element strukturues krijohet me një formë disku dhe lagje 2 dhe përdoret për të mbushur çdo boshllëk në sfond ose brenda qelizave. Pastaj ne përdorim funksionin bwboundsaries i cili gjurmon blobs dhe dhe e ruan atë në një matricë. Ne e etiketojmë imazhin duke përdorur ngjyra të ndryshme në mënyrë që të bëhet një pamje më e qartë. Tjetra, duke përdorur një lak for që shkon sipas numrit të objekteve dhe vrimave të gjetura në imazh, ai vendos një kufi rreth blloqeve që korrespondojnë me këtë grup. Pasi të përfundojë ky lak, fillon një lak tjetër, përsëri sipas numrit të objekteve dhe vrimave të gjetura në imazh. Këtë herë ne përdorim funksionin regionprops i cili mbledh veti të caktuara si zona nga grupi dhe ruan informacionin që përmban numrin e objekteve dhe vrimave. Duke përdorur këtë informacion, ne llogarisim sipërfaqen dhe perimetrin e këtyre objekteve duke përdorur formën centroid. Ashtë vendosur një prag në mënyrë që të krahasohen rezultatet sapo të llogarisim njësinë metrike të një objekti rrethor dhe ta vizatojmë këtë matje si tekst pranë centroideve të llogaritura. Kodi përfundimtar do të shfaqë rrumbullakosjen e qelizave të ndryshme që gjenden në imazh dhe çdo vlerë afër vlerës një do të jetë më e rrumbullakët se të tjerat. Vlera 1 nënkupton që qeliza është krejtësisht e rrumbullakët dhe është në gjendje të mirë për tu kaluar.

Recommended: