Мазмұны:

BME 60B Sandbox жобасы: 6 қадам
BME 60B Sandbox жобасы: 6 қадам

Бейне: BME 60B Sandbox жобасы: 6 қадам

Бейне: BME 60B Sandbox жобасы: 6 қадам
Бейне: BME Sandbox Project 2024, Шілде
Anonim
BME 60B Sandbox жобасы
BME 60B Sandbox жобасы

Біздің Sandbox жобасы биологиялық саладағы зерттеушілерге жасуша үлгілерін талдауға және олардың жасушаларының жағдайын білуге көмектесуге бағытталған. Пайдаланушы ұяшық үлгісінің суретін енгізгеннен кейін, біздің код кескінді сұр және екілікке түрлендіру арқылы суретті ұяшықтарды санауға дайындау үшін өңдейді. Код жасуша массасын дәл табу үшін нақты ұяшықтарға қатысы жоқ артық ақпаратты жою үшін шектеуді қолданады. Кескіндегі ұяшықтар санын есептегеннен кейін, біздің код кескіннің пиксель өлшемін береді, содан кейін ұяшықтар санын ұяшықтар ауданына салыстыру арқылы ұяшықтар аймағының таралуын табады, бұл пайдаланушыға қосылу нүктесін береді. қызығушылық ұяшықтары жабылған мәдени тағам бетінің пайызы. Қосылу негізінде зерттеуші жасушаларды өту керек пе, жоқ па, соны анықтай алады; Жасушалардың өтуі дегеніміз - мәдениеттің бір бөлігін жаңа өсу ортасына көшіру арқылы жасушалардың немесе микроорганизмдердің өмірін немесе санын ұлғайтуды білдіреді және бұл жасушалар тым үлкен болып өскенде немесе тамақ таусылғанда пайдалы. Кодты іске қосқаннан және кескінді өңдегеннен кейін, пайдаланушы нәтижелерді қабылдайтынын немесе қабылдамайтынын шеше алады және қажет болған жағдайда деректерді жақсы алу үшін шекті реттеуге көшеді.

1 -қадам: талдау үшін кескінді таңдаңыз және конфигурациялаңыз

Талдау үшін кескінді таңдаңыз және конфигурациялаңыз
Талдау үшін кескінді таңдаңыз және конфигурациялаңыз

Біздің кодтағы бірінші қадам - сәйкес суретті таңдау және оны Matlab -те талдау үшін конфигурациялау. Біз кез келген файлды алып, оны бағдарламаға енгізуге мүмкіндік беретін uigetfile функциясын қолдана отырып суретті таңдай аламыз. Содан кейін, imread көмегімен суретті оқимыз және оны Matlab -те талдау үшін конфигурациялаймыз. Содан кейін таңдалған сурет қосалқы алаңда көрсетіледі.

2 -қадам: Шекті және GUI

Шекті және GUI
Шекті және GUI
Шекті және GUI
Шекті және GUI

Кодтың басында «uigetfile» көмегімен сурет таңдалады, содан кейін айнымалы мәнмен суретті анықтайды. Содан кейін айнымалы әр түрлі талдауды орындау кезінде кодты анықтау үшін қолданылады. Суретте 2х2 қосалқы алаң құрылады. 1 -позицияда бастапқы сурет көрсетіледі. Кодтың келесі бөлімі табалдырықтарды реттеу орын алатын жерде. Бастапқыда 0,6 шектік мәнінің әдепкі мәні пайдаланылады және қосалқы алаңның 2 -позициясында көрсетіледі. If-операторы пайдаланушының табалдырықты сақтағысы келетінін немесе оны реттегісі келетінін анықтау үшін қолданылады. Пайдаланушы әр түрлі шекті жағдайларда суретті, жүгірткіні және сақтау түймесін қамтитын GUI көмегімен шекті реттей алады. Шекті мәнді орнатқаннан кейін пайдаланушы кескінді сақтау үшін сақтау түймесін басады және ол MATLAB файлдарында-p.webp

3 -қадам: Контурларды салу және жасушалардың таралуы

Контурларды салу және жасушалардың таралуы
Контурларды салу және жасушалардың таралуы
Контурларды салу және жасушалардың таралуы
Контурларды салу және жасушалардың таралуы

Кодтың келесі бөлігі контурларды салады. Ұяшықтар қызыл периметрмен қоршалған цикл бар, ал басқа ұяшықтың үстіндегі ұяшықтар жасыл түспен белгіленген. Содан кейін белгіленген сурет интерактивті қашықтық сызығымен 3 -позицияда көрсетіледі. Бұл жол пайдаланушы пиксельден миллиметрге дейін түрлендіретін сызықтағы пикселдердің санын анықтайды. Содан кейін қашықтық коэффициенті аймақтық аймақтармен анықталатын аймаққа көбейтіледі және енді аудан миллиметр квадратпен өрнектеледі. Содан кейін мәліметтер гистограмма арқылы жасушалардың оның аумағына қарай таралуын көру үшін салынады. Бұл гистограмма 4 -ші позицияда көрсетіледі.

4 -қадам: ұяшық кескінін түрлендіру

Ұяшық кескінін түрлендіру
Ұяшық кескінін түрлендіру

Бұл қадамда біз сұр түсті бейнені алып, оны бинаризацияладық, сүзгіледік және төңкердік. Бұл функцияларды кескін бойынша орындау ұяшықтар үшін қате болуы мүмкін шулы пикселдерді жояды және кескінді ұяшық жиектерінде тегіс және жұмсақ етеді. Бұл суреттегі ұяшықтарды фонда қарқындылығымен ерекшеленетін «блузкалар» ретінде шығару үшін жасалды. «Блобтар» жоғары қарқынды ақ кескіндер болды, ал фон қара болды. Егер тағы біршама уақытқа рұқсат етілсе, біз имбинаризациялық функцияның орнына суреттерге дәлірек және сәйкес келу үшін басқа Blob кескінін түрлендіруді қолданар едік, бірақ бұл функцияны зерттеуге және іске асыруға көбірек уақыт қажет болды.

5 -қадам: Ұяшықтарды санау және жасушалардың қосылуын есептеу

Ұяшықтарды санау және жасушалардың қосылуын есептеу
Ұяшықтарды санау және жасушалардың қосылуын есептеу

Кодтың бұл қадамында біз суреттегі ұяшықтардың санын санауды мақсат еттік. Біз, ең алдымен, аймақтардың функциясын блоктардың аудандарын есептеу үшін қолдандық, ал егер бұл аймақ біздің қалаған шекарамызда есептелген болса, онда ол қосалқы жоспарға шығарылады. Шекаралар ұялы емес шағын шулы пикселдерді немесе үлкен қарқындылықты жою үшін орнатылды. Ұяшық санағышы содан кейін сызылған центроидтерді санап, оларды циклдегі санауышқа қосады. Жасушалардың аудандары анықталғаннан кейін біз қосылу нүктесін есептей алдық. Кодтағы бұл қадамның басты маңыздылығы жасушалардың түйісуін табу болды және бұл біздің кодтың түпкі мақсатына маңызды болды. Біз мұны әр блоктағы пиксельдерді (соманы (allAreas)) жинақтап, содан кейін оны кескіннің жалпы пиксельдік мәніне бөлу арқылы есептеу арқылы жасадық (сан (img)). Бұл коэффициент бізге түйісуге мүмкіндік береді және егер зерттеуші жасушалардың өту уақытымен салыстырғанда 80% -дан асатыны анықталса. Біз мүмкіндігінше дәл және дәл болуды мақсат еттік, бірақ уақыт шектеулі болғандықтан дәлсіздік орын алды. Егер уақыт рұқсат етсе, біз блоктарды санауды дәлдеу әдістерін іздейтін едік, мысалы, сүзу әдістері және/немесе қатаң түрлендіру, өйткені бұл сүзу әдісін қолдану үшін әлі жеткілікті зерттеулер жүргізілген жоқ.

6 -қадам: Жасушалардың дөңгелектелуі

Жасушалардың дөңгелектігі
Жасушалардың дөңгелектігі
Жасушалардың дөңгелектігі
Жасушалардың дөңгелектігі

Кескіннің дөңгелектеуін өлшей алмас бұрын, біз RGB -тен сұр шкалаға түрлендіруіміз керек, кескінді екіге бөліп, төңкеріп, сүзгілеуіміз керек. Фильтрлеу әдісі bwareaopen функциясын қолданады, ол қызығушылық тудыратын суретті сүзеді және ұяшықтың өлшемін көрсетпейтін тым кішкентай ерекшеліктерді немесе пикселдерді жояды. Құрылымдық элемент диск пішіні мен 2 -ге жақын ауданда құрылады және ол фонда немесе ұяшықтардағы бос орындарды толтыру үшін қолданылады. Содан кейін біз блоктарды бақылайтын bwboundaries функциясын қолданамыз және оны матрицада сақтаймыз. Содан кейін біз суретті әр түрлі түстермен белгілейміз, осылайша ол айқын визуалды болады. Әрі қарай, суретте табылған объектілер мен тесіктердің санына сәйкес жұмыс істейтін for циклын қолдана отырып, ол осы массивке сәйкес келетін блоктардың айналасында шекара орнатады. Бұл цикл аяқталғаннан кейін суретте табылған заттар мен тесіктердің санына сәйкес тағы бір цикл басталады. Бұл жолы біз массивтен аймақ сияқты белгілі бір қасиеттерді жинайтын және объектілер мен тесіктердің саны бар ақпаратты сақтайтын regionprops функциясын қолданамыз. Осы мәліметтерді қолдана отырып, біз центроид пішінін қолдана отырып, осы объектілердің ауданын және периметрін есептейміз. Дөңгелек нысанның метрикалық бірлігін есептеп, осы центрлік есептелетін мәтіннің орнына осы өлшемді салғаннан кейін нәтижелерді салыстыру үшін шекті мән орнатылады. Соңғы код кескіннен табылған әр түрлі ұяшықтардың дөңгелектілігін көрсетеді және мәнге жақын кез келген мәндер басқаларға қарағанда дөңгелек болады. 1 мәні ұяшықтың дөңгелек екенін және жақсы жағдайда болатынын білдіреді.

Ұсынылған: