Talaan ng mga Nilalaman:

Project ng BME 60B Sandbox: 6 na Hakbang
Project ng BME 60B Sandbox: 6 na Hakbang

Video: Project ng BME 60B Sandbox: 6 na Hakbang

Video: Project ng BME 60B Sandbox: 6 na Hakbang
Video: biomedical engineer 2024, Nobyembre
Anonim
Proyekto sa Sandbox ng BME 60B
Proyekto sa Sandbox ng BME 60B

Nilalayon ng aming Sandbox Project na matulungan ang mga mananaliksik sa biological field na pag-aralan ang mga sample ng cell at alamin ang mga kondisyon ng kanilang mga cell. Matapos mag-input ang gumagamit ng isang imahe ng kanilang sample ng cell, pinoproseso ng aming code ang imahe upang maihanda ito para sa pagbibilang ng cell sa pamamagitan ng pag-convert ng imahe sa grayscale at binary. Gumagamit ang code ng threshold upang alisin ang labis na impormasyon na hindi nauukol sa mga tunay na cell upang tumpak na makita ang mga masa ng cell. Matapos mabilang ang bilang ng mga cell sa imahe, binibigyan ng aming code ang laki ng pixel ng imahe at pagkatapos ay nahahanap ang pamamahagi ng lugar ng cell sa pamamagitan ng paglalagay ng bilang ng mga cell kumpara sa lugar ng mga cell upang mabigyan ang confluence ng gumagamit, na kung saan ay ang porsyento ng ibabaw ng isang pinggan ng kultura na sakop ng mga cell ng interes. Batay sa confluence, maaaring matukoy ng mananaliksik kung dapat o daanan ang mga cell; Ang pagpasa ng mga cell ay tumutukoy sa pagpapalawak ng buhay o bilang ng mga cell o microorganism sa pamamagitan ng paglilipat ng ilan sa kultura sa isang sariwang daluyan ng paglaki, at kapaki-pakinabang kapag ang mga cell ay lumalaki ng sobra o naubos na pagkain. Matapos patakbuhin ang code at iproseso ang imahe, maaaring magpasya ang gumagamit kung tatanggapin nila o tatanggihan ang mga resulta, at magpatuloy upang ayusin ang threshold para sa mas mahusay na pagkuha ng data kung kinakailangan.

Hakbang 1: Piliin at I-configure ang Imahe para sa Pagsusuri

Piliin at I-configure ang Imahe para sa Pagsusuri
Piliin at I-configure ang Imahe para sa Pagsusuri

Ang unang hakbang sa aming code ay upang piliin ang naaangkop na imahe at i-configure ito para sa pagtatasa sa Matlab. Kami ay maaaring pumili ng imahe gamit ang uigetfile function na nagbibigay-daan sa amin upang grab ang anumang file at ipasok ito sa programa. Pagkatapos, gamit ang imread binasa namin ang imahe at na-configure ito para sa pagtatasa sa Matlab. Ang imahe na napili ay ipapakita sa isang subplot.

Hakbang 2: Threshold at GUI

Threshold at GUI
Threshold at GUI
Threshold at GUI
Threshold at GUI

Sa simula pa lamang ng code ang isang imahe ay pinili gamit ang "uigetfile" at pagkatapos ay tumutukoy sa imaheng iyon sa isang variable. Gagamitin ang variable upang makilala ang code kapag nagpapatakbo ng iba't ibang pagtatasa. Ang isang 2x2 subplot ay nilikha sa figure. Sa posisyon 1, ipapakita ang orihinal na imahe. Ang susunod na seksyon ng code ay kung saan magaganap ang mga pagsasaayos ng mga threshold. Sa una ang isang default ng isang threshold na 0.6 ay ginagamit at ipinapakita sa posisyon 2 ng subplot. Ginagamit ang isang if-statement upang matukoy kung nais ng gumagamit na panatilihin ang threshold o ayusin ito. Maaaring ayusin ng gumagamit kaysa sa threshold gamit ang isang GUI na may kasamang imahe sa iba't ibang mga kundisyon ng threshold, slider, at isang save button. Matapos maitakda ang threshold, pagkatapos ay i-click ng gumagamit ang pindutang i-save upang mai-save ang imahe at maiimbak ito sa mga gumagamit ng mga file ng MATLAB bilang isang-p.webp

Hakbang 3: Mga Plotting Contour at Pamamahagi ng Cell

Mga Plotting Contour at Pamamahagi ng Cell
Mga Plotting Contour at Pamamahagi ng Cell
Mga Plotting Contour at Pamamahagi ng Cell
Mga Plotting Contour at Pamamahagi ng Cell

Ang susunod na bahagi ng code ay naglalagay ng mga contour. Mayroong loop kung saan ang mga cell ay nakapaloob sa isang pulang perimeter, at ang mga cell na nasa tuktok ng isa pang cell ay nakabalangkas sa berde. Pagkatapos ay ipinakita ang nakabalangkas na imahe sa posisyon 3 na may isang interactive na linya ng distansya. Tutukuyin ng linyang ito ang bilang ng mga pixel sa linyang inayos ng gumagamit para sa isang pixel hanggang millimeter converter. Ang kadahilanan ng distansya pagkatapos ay pinarami ang lugar na tinutukoy ng mga regionprops at ang lugar ay ipinahayag ngayon sa millimeter na square. Pagkatapos ay naka-plot ang data gamit ang isang histogram upang makita ang pamamahagi ng mga cell ayon sa lugar nito. Ipapakita ang histogram na ito sa posisyon 4.

Hakbang 4: I-convert ang Larawan ng Cell

I-convert ang Larawan ng Cell
I-convert ang Larawan ng Cell

Sa hakbang na ito kinuha namin ang grayscale na imahe at binarized, sinala, at invert ito. Ang pagsasagawa ng mga pagpapaandar na ito sa imahe ay inalis ang mga maingay na pixel na maaaring mapagkamalang mga cell at ginawang mas makinis at malambot ang imahe sa paligid ng mga gilid ng cell. Ginawa ito upang makuha ang mga cell sa imahe bilang nakikilalang "mga bloke" na naiiba sa tindi mula sa likuran. Ang "Blobs" ay mataas na intensidad puting mga imahe at ang background ay itim. Kung pinayagan ng kaunting oras ay gumamit sana kami ng ibang pag-convert ng imahe ng Blob sa halip na ang imbinarize na function upang maging mas tumpak at mas naaangkop sa aming mga imahe, ngunit kailangan namin ng mas maraming oras upang pagsasaliksik at pagpapatupad ng pagpapaandar.

Hakbang 5: Bilangin ang Mga Cell at Kalkulahin ang Confluence ng Cell

Bilangin ang Mga Cell at Kalkulahin ang Confluence ng Cell
Bilangin ang Mga Cell at Kalkulahin ang Confluence ng Cell

Sa hakbang na ito ng code, nilalayon namin na bilangin ang bilang ng mga cell na nasa imahe. Pangunahin naming ginamit ang mga function ng regionprops upang makalkula ang mga lugar ng mga bloke at kung ang lugar ay kinakalkula upang maabot ang aming ninanais na hangganan ay ipaplano ito sa isang subplot. Ang mga hangganan ay itinakda upang maalis ang maliit na mga ingay na pixel o malalaking intensidad na hindi mga cell. Pagkatapos ay bibilangin ng counter ng cell ang mga centroid na pagkatapos ay naka-plot at idaragdag sa counter sa for loop. Sa sandaling natukoy ang mga lugar ng mga cell nagawang makalkula namin ang confluence. Ang pangunahing kahalagahan ng hakbang na ito sa code ay upang mahanap ang confluence ng mga cell at ito ay mahalaga sa aming pangwakas na layunin ng code. Ginawa namin ito sa pamamagitan ng pagkalkula sa pamamagitan ng pagsasama sa mga pixel (kabuuan (allAreas)) sa bawat patak at pagkatapos ay paghatiin ito sa kabuuang halaga ng pixel ng imahe (numel (img)). Ang ratio na ito ay magbibigay sa amin ng confluence at kung ito ay tinukoy na maging higit sa 80% kaysa sa oras na para sa mga cell na maipasa ng mananaliksik. Nilalayon namin na maging tumpak at tumpak hangga't maaari ngunit may limitadong oras kaya naganap ang kawastuhan. Kung pinapayagan ang oras ay titingnan namin ang mga paraan upang gawing mas tumpak ang pagbibilang ng mga bloke tulad ng mas maraming mga diskarte sa pag-filter at / o isang Hough Transform dahil wala pang sapat na pananaliksik ang nagawa upang subukan ang diskarteng pag-filter

Hakbang 6: Roundness ng Mga Cell

Roundness ng Mga Cell
Roundness ng Mga Cell
Roundness ng Mga Cell
Roundness ng Mga Cell

Bago masukat ang bilog na patak sa isang imahe, kailangan naming i-convert mula sa RGB patungong grayscale, binarize, invert, at i-filter ang imahe. Ang isang diskarte sa pag-filter ay gumagamit ng pagpapaandar na bwareaopen, na sinasala ang imahe ng interes at inaalis nito ang anumang mga spec o pixel na masyadong maliit na hindi kumakatawan sa laki ng isang cell. Ang isang elemento ng pagbubuo ay nilikha na may isang hugis ng isang disk at kapitbahayan ng 2 at ginagamit ito upang punan ang anumang mga puwang sa background o sa loob ng mga cell. Pagkatapos ay ginagamit namin ang pagpapaandar na mga bwboundary na sumusubaybay sa mga blob at at iniimbak ito sa isang matrix. Pagkatapos ay nilalagyan namin ng label ang imahe gamit ang iba't ibang mga kulay upang ito ay maging isang mas malinaw na visual. Susunod, gamit ang isang para sa loop na tumatakbo ayon sa bilang ng mga bagay at butas na matatagpuan sa imahe, nagtatakda ito ng isang hangganan sa paligid ng mga bloke na naaayon sa array na ito. Kapag natapos ang loop na ito, nagsisimula ang isa pang loop, muli ayon sa bilang ng mga bagay at butas na matatagpuan sa imahe. Sa pagkakataong ito ay ginagamit namin ang mga pag-andar na rehiyon na nangangalap ng ilang mga pag-aari tulad ng lugar mula sa array at iniimbak ang impormasyon na naglalaman ng bilang ng mga bagay at butas. Gamit ang impormasyong ito, kinakalkula namin ang lugar at perimeter ng mga bagay na ito gamit ang hugis ng centroid. Ang isang threshold ay itinakda upang ihambing ang mga resulta sa sandaling makalkula ang yunit ng sukatan ng isang pabilog na bagay at isinalakay ang pagsukat na ito bilang teksto sa tabi ng kinakalkula na mga centroid. Ipapakita ng pangwakas na code ang pag-ikot ng iba't ibang mga cell na matatagpuan sa imahe at ang anumang mga halagang malapit sa halagang ang isa ay mas bilog kaysa sa iba. Ang isang halaga ng 1 ay nagpapahiwatig na ang cell ay perpektong bilog at nasa mabuting kalagayan na nadaanan.

Inirerekumendang: