Съдържание:

BME 60B Sandbox Project: 6 стъпки
BME 60B Sandbox Project: 6 стъпки

Видео: BME 60B Sandbox Project: 6 стъпки

Видео: BME 60B Sandbox Project: 6 стъпки
Видео: BME Sandbox Project 2024, Юли
Anonim
Проект BME 60B Sandbox
Проект BME 60B Sandbox

Нашият проект за пясъчник има за цел да помогне на изследователите в биологичното поле да анализират клетъчни проби и да установят условията на техните клетки. След като потребителят въведе изображение на клетъчната си извадка, нашият код обработва изображението, за да го подготви за преброяване на клетки, като преобразува изображението в сиво и двоично. Кодът използва праг за премахване на излишната информация, която не се отнася за действителните клетки, за да се намерят точно клетките. След преброяване на броя на клетките в изображението, нашият код дава размера на пиксела на изображението и след това намира разпределението на клетъчната площ чрез начертаване на броя на клетките спрямо площта на клетките, за да даде на потребителя сливането, което е процент от повърхността на културен съд, покрит от клетките, представляващи интерес. Въз основа на сливането изследователят може да определи дали клетките трябва да бъдат преминати или не; преминаването на клетки се отнася до разширяване на живота или броя на клетките или микроорганизмите чрез прехвърляне на част от културата в свежа среда за растеж и е полезно, когато клетките растат твърде големи или им свърши храната. След като стартира кода и обработи изображението, потребителят може да реши дали да приеме или отхвърли резултатите и да продължи да коригира прага за по -добро извличане на данни, ако е необходимо.

Стъпка 1: Изберете и конфигурирайте изображение за анализ

Изберете и конфигурирайте изображение за анализ
Изберете и конфигурирайте изображение за анализ

Първата стъпка в нашия код е да изберете подходящото изображение и да го конфигурирате за анализ в Matlab. Можем да изберем изображението с помощта на функцията uigetfile, която ни позволява да вземем всеки файл и да го вмъкнем в програмата. След това, използвайки imread, четем изображението и го конфигурираме за анализ в Matlab. Изображението, което е избрано, след това се показва на подплот.

Стъпка 2: Праг и GUI

Праг и GUI
Праг и GUI
Праг и GUI
Праг и GUI

В самото начало на кода изображение се избира с помощта на „uigetfile“и след това се определя това изображение с променлива. След това променливата ще се използва за идентифициране на кода при провеждане на различен анализ. На фигурата е създаден подзахват 2x2. В позиция 1 ще се покаже оригиналното изображение. Следващият раздел на кода е мястото, където се извършват корекции на праговете. Първоначално се използва праг по подразбиране от 0,6 и се показва в позиция 2 на подплота. След това се използва оператор if, за да се определи дали потребителят иска да запази прага или да го коригира. Потребителят може да регулира прага с помощта на графичен интерфейс, който включва изображението при различни прагови условия, плъзгача и бутона за запазване. След като прагът е зададен, потребителят ще кликне върху бутона за запазване, за да запази изображението и то ще бъде съхранено в MATLAB файлове на потребителите като-p.webp

Стъпка 3: Начертаване на контури и разпределение на клетките

Начертаване на контури и разпределение на клетките
Начертаване на контури и разпределение на клетките
Начертаване на контури и разпределение на клетките
Начертаване на контури и разпределение на клетките

Следващата част от кода очертава контурите. Има цикъл, в който клетките са затворени с червен периметър, а тези клетки, които са на върха на друга клетка, са очертани в зелено. След това очертаното изображение се показва в позиция 3 с интерактивна линия за разстояние. Този ред ще определи броя на пикселите в линията, коригиран от потребителя за преобразувател на пиксели в милиметри. След това коефициентът на разстояние се умножава площта, определена от регионите, и площта сега се изразява в милиметри на квадрат. След това данните се нанасят с помощта на хистограма, за да се види разпределението на клетките по площта им. След това тази хистограма ще се покаже на позиция 4.

Стъпка 4: Конвертиране на клетъчно изображение

Конвертиране на клетъчно изображение
Конвертиране на клетъчно изображение

В тази стъпка взехме изображението в сиви скали и го бинаризирахме, филтрирахме и обърнахме. Изпълнението на тези функции върху изображението премахва шумните пиксели, които могат да бъдат сбъркани с клетки, и прави изображението по -гладко и меко около ръбовете на клетката. Това беше направено, за да се извлекат клетките в изображението като различими „петна“, които се различават по интензитет от фона. "Blobs" бяха бели изображения с висока интензивност и фонът беше черен. Ако беше позволено малко повече време, щяхме да използваме различно преобразуване на Blob изображение вместо функцията imbinarize, за да бъдем по -точни и по -подходящи за нашите изображения, но ни трябваше повече време за проучване и внедряване на функцията.

Стъпка 5: Пребройте клетките и изчислете клетъчното сливане

Пребройте клетките и изчислете клетъчното сливане
Пребройте клетките и изчислете клетъчното сливане

В тази стъпка от кода имахме за цел да преброим броя клетки, които са в изображението. Използвахме предимно функцията regionprops за изчисляване на площите на петна и ако площта беше изчислена да бъде в желаната от нас граница, тя ще бъде нанесена на подплот. Границите бяха зададени с цел премахване на малки шумни пиксели или големи интензитети, които не бяха клетки. Броячът на клетките след това преброява центроидите, които след това са нанесени, и ги добавя към брояча в цикъла for. След като областите на клетките бяха определени, успяхме да изчислим сливането. Основното значение на тази стъпка в кода беше да се намери сливането на клетките и това беше ключово за нашата крайна цел на кода. Направихме това, като изчислихме като сумираме пикселите (сума (allAreas)) във всяко петно и след това го разделим на общата стойност на пикселите на изображението (numel (img)). Това съотношение ще ни даде сливането и ако се определи, че е по -голямо от 80%, тогава е време клетките да бъдат преминати от изследователя. Имахме за цел да бъдем възможно най -точни и точни, но с ограниченото време, така че се получи неточност. Ако времето позволяваше, щяхме да търсим начини да направим преброяването на петна по -точно, като например повече техники за филтриране и/или преобразуване на Hough, тъй като все още не са направени достатъчно изследвания, за да се изпробва тази техника на филтриране

Стъпка 6: Закръгленост на клетките

Закръгленост на клетките
Закръгленост на клетките
Закръгленост на клетките
Закръгленост на клетките

Преди да можем да измерим закръглеността на петното в изображение, трябва да преобразуваме от RGB в сиво, да бинаризираме, да обърнем и филтрираме изображението. Техниката на филтриране използва функцията bwareaopen, която филтрира изображението, което представлява интерес, и премахва всички спецификации или пиксели, които са твърде малки и не представляват размера на клетка. Създава се структуриращ елемент с форма на диск и квартал от 2 и той се използва за запълване на всички празнини във фонов режим или в клетките. След това използваме функцията bwboundaries, която проследява blobs и я съхранява в матрица. След това маркираме изображението с различни цветове, така че да стане по -ясен визуален. След това, използвайки цикъл for, който работи според броя на обектите и дупките, намерени в изображението, той задава граница около петна, съответстващи на този масив. След като този цикъл приключи, започва друг цикъл, отново според броя на обектите и дупките, намерени в изображението. Този път използваме функцията regionprops, която събира определени свойства като площ от масива и съхранява информацията, съдържаща броя на обектите и дупките. Използвайки тази информация, ние изчисляваме площта и периметъра на тези обекти, като използваме формата на центроида. Праг се задава, за да се сравнят резултатите, след като изчислим метричната единица на кръгъл обект и начертаем това измерване като текст до изчислените центроиди. Крайният код ще покаже закръглеността на различните клетки, намерени в изображението, и всички стойности, близки до стойността на една, ще бъдат по -кръгли от другите. Стойност 1 означава, че клетката е перфектно кръгла и е в добро състояние за преминаване.

Препоръчано: