Mundarija:

BME 60B Sandbox loyihasi: 6 qadam
BME 60B Sandbox loyihasi: 6 qadam

Video: BME 60B Sandbox loyihasi: 6 qadam

Video: BME 60B Sandbox loyihasi: 6 qadam
Video: BME Sandbox Project 2024, Iyul
Anonim
BME 60B Sandbox loyihasi
BME 60B Sandbox loyihasi

Bizning "Sandbox" loyihamiz biologik sohadagi tadqiqotchilarga hujayra namunalarini tahlil qilish va ularning hujayralari holatini aniqlashga yordam berishga qaratilgan. Foydalanuvchi hujayra namunasining rasmini kiritgandan so'ng, bizning kodimiz tasvirni kulrang va ikkilikka aylantirish orqali hujayralarni sanashga tayyor bo'lish uchun tasvirni qayta ishlaydi. Hujayra massalarini aniq topish uchun kod haqiqiy hujayralarga tegishli bo'lmagan ortiqcha ma'lumotlarni olib tashlash uchun chegaradan foydalanadi. Rasmdagi hujayralar sonini hisoblagandan so'ng, bizning kodimiz tasvirning piksel o'lchamini beradi, so'ngra hujayralar sonini hujayralar maydoniga solishtirib, hujayralar maydonining taqsimlanishini topadi. qiziqish hujayralari bilan qoplangan madaniy taomlar yuzasining foizi. Birlashuvga asoslanib, tadqiqotchi hujayralar o'tishi kerakmi yoki yo'qligini aniqlay oladi; Hujayralarning o'tishi deganda, madaniyatning bir qismini yangi o'sadigan muhitga o'tkazish orqali hujayralar yoki mikroorganizmlarning hayotini yoki sonini ko'paytirish tushuniladi va bu hujayralar juda katta o'sganda yoki oziq -ovqati tugaganda foydali bo'ladi. Kodni ishga tushirgandan va tasvirni qayta ishlagandan so'ng, foydalanuvchi natijalarni qabul qilish yoki rad etish to'g'risida qaror qabul qilishi mumkin va agar kerak bo'lsa, ma'lumotlarni yaxshiroq olish uchun chegarani sozlashni davom ettirishi mumkin.

1 -qadam: Tahlil qilish uchun tasvirni tanlang va sozlang

Tahlil qilish uchun tasvirni tanlang va sozlang
Tahlil qilish uchun tasvirni tanlang va sozlang

Bizning kodimizdagi birinchi qadam - mos tasvirni tanlash va uni Matlabda tahlil qilish uchun sozlash. Biz rasmni uigetfile funktsiyasidan foydalanib tanlay olamiz, bu bizga istalgan faylni olish va uni dasturga kiritish imkonini beradi. Keyin, imread yordamida biz tasvirni o'qiymiz va uni Matlabda tahlil qilish uchun sozlaymiz. Keyin tanlangan rasm pastki qismda ko'rsatiladi.

2 -qadam: Chegara va GUI

Chegara va GUI
Chegara va GUI
Chegara va GUI
Chegara va GUI

Kodning boshida tasvir "uigetfile" yordamida tanlanadi va keyin tasvirni o'zgaruvchi bilan aniqlanadi. Keyin o'zgaruvchi har xil tahlilni o'tkazishda kodni aniqlash uchun ishlatiladi. Rasmda 2x2 o'lchamdagi kichik uchastka yaratilgan. 1 -pozitsiyada asl tasvir ko'rsatiladi. Kodning keyingi bo'limida chegaralarni sozlash amalga oshiriladi. Dastlab, 0.6 chegara qiymati ishlatiladi va u pastki qismning 2 -pozitsiyasida ko'rsatiladi. If-iborasi foydalanuvchining chegarani saqlamoqchi yoki sozlashni xohlashini aniqlash uchun ishlatiladi. Foydalanuvchi turli chegara sharoitidagi tasvirni, slayderni va saqlash tugmachasini o'z ichiga olgan GUI yordamida chegarani o'zgartirishi mumkin. Chegara o'rnatilgandan so'ng, foydalanuvchi rasmni saqlash uchun saqlash tugmachasini bosadi va u MATLAB foydalanuvchilarining-p.webp

3 -qadam: konturlarni tuzish va hujayralarni tarqatish

Konturlarni tuzish va hujayralarni taqsimlash
Konturlarni tuzish va hujayralarni taqsimlash
Konturlarni tuzish va hujayralarni taqsimlash
Konturlarni tuzish va hujayralarni taqsimlash

Kodning keyingi qismi konturlarni tuzadi. Hujayralar qizil perimetr bilan o'ralgan, boshqa hujayraning tepasida joylashgan hujayralar yashil rangda tasvirlangan. Belgilangan rasm interaktiv masofa chizig'i bilan 3 -pozitsiyada ko'rsatiladi. Bu chiziq foydalanuvchi tomonidan piksel -millimetrli konvertorga moslashtirilgan chiziqdagi piksellar sonini aniqlaydi. Keyin masofa koeffitsienti mintaqa zonalari tomonidan aniqlangan maydonga ko'paytiriladi va endi maydon millimetr kvadrat bilan ifodalanadi. Ma'lumotlar gistogramma yordamida tuzilib, hujayralar uning maydoni bo'yicha taqsimlanadi. Keyin bu gistogramma 4 -pozitsiyada ko'rsatiladi.

4 -qadam: Hujayra tasvirini aylantirish

Hujayra tasvirini aylantirish
Hujayra tasvirini aylantirish

Bu bosqichda biz kul rang tasvirni oldik va binarizatsiya qildik, filtrladik va teskari qildik. Rasmda bu funktsiyalarni bajarish shovqinli piksellarni olib tashladi, ular hujayralar deb adashishi mumkin edi va tasvirni hujayra qirralarida yanada silliq va yumshoq qilib qo'ydi. Bu tasvirdagi hujayralarni fondan intensivligi bilan ajralib turadigan "shilimshiq" sifatida ajratish uchun qilingan. "Bloblar" yuqori zichlikdagi oq tasvirlar va fon qora edi. Agar biroz ko'proq vaqtga ruxsat berilsa, biz imbinarize funktsiyasining o'rniga tasvirlarimizga aniqroq va mosroq bo'lishi uchun boshqa Blob tasvirini o'zgartirishni qo'llagan bo'lardik, lekin bu funktsiyani o'rganish va amalga oshirish uchun ko'proq vaqt kerak edi.

5 -qadam: Hujayralarni sanash va hujayralarning birlashishini hisoblash

Hujayralarni sanash va hujayralarning birlashishini hisoblash
Hujayralarni sanash va hujayralarning birlashishini hisoblash

Kodning bu bosqichida biz rasmdagi hujayralar sonini hisoblashni maqsad qilganmiz. Biz birinchi navbatda regionprops funktsiyasidan foydalanib, bo'g'imlarning maydonlarini hisobladik va agar maydon bizning xohlagan chegaramizda hisoblansa, u pastki qismga chizilgan bo'lar edi. Chegaralar kichik shovqinli piksellarni yoki hujayralar bo'lmagan katta intensivlikni olib tashlash uchun o'rnatildi. Hujayra hisoblagichi keyinroq tuzilgan sentroidlarni sanab, ularni loop uchun hisoblagichga qo'shadi. Hujayralarning maydonlari aniqlangach, biz birlashishni hisoblay oldik. Koddagi ushbu qadamning asosiy ahamiyati hujayralarning birlashuvini topish edi va bu bizning kodning yakuniy maqsadiga hal qiluvchi ahamiyatga ega edi. Biz buni har bir blokdagi piksellarni (yig'indisi (allAreas)) yig'ish va keyin tasvirning umumiy piksel qiymatiga bo'lish yo'li bilan hisoblash orqali qildik (raqam (img)). Bu nisbat bizga birlashuvni beradi va agar tadqiqotchi tomonidan hujayralar o'tishi kerak bo'lgan vaqtdan 80% dan ko'proq aniqlansa. Biz iloji boricha aniq va aniq bo'lishni maqsad qildik, lekin vaqt cheklanganligi sababli noaniqliklar yuzaga keldi. Agar vaqt imkon bersa, biz aniqroq hisoblash usullarini qidirgan bo'lar edik, masalan, ko'proq filtrlash texnikasi va/yoki "Hough Transform", chunki filtrlash texnikasini sinab ko'rish uchun hali etarli tadqiqotlar o'tkazilmagan.

6 -qadam: Hujayralarning yumaloqligi

Hujayralarning yumaloqligi
Hujayralarning yumaloqligi
Hujayralarning yumaloqligi
Hujayralarning yumaloqligi

Rasmdagi dumaloq yumaloqlikni o'lchashdan oldin, biz RGB -dan kul rangga o'tkazishimiz, tasvirni ikkilamchi o'zgartirishimiz, teskari o'zgartirishimiz va filtrlashimiz kerak. Filtrlash texnikasi bwareaopen funktsiyasidan foydalanadi, u qiziqish tasvirini filtrlaydi va hujayra o'lchamiga mos kelmaydigan juda kichik o'lchamdagi piksellar sonini o'chiradi. Tuzilish elementi disk shakli va 2 ga yaqin mahalla bilan yaratilgan bo'lib, u fonda yoki hujayralardagi bo'shliqlarni to'ldirish uchun ishlatiladi. Keyin biz bwboundaries funktsiyasidan foydalanamiz, u bloklarni kuzatadi va uni matritsaga saqlaydi. Keyin biz tasvirni turli xil ranglar yordamida belgilaymiz, shunda u yanada aniqroq bo'ladi. Keyin, rasmda topilgan ob'ektlar va teshiklar soniga qarab ishlaydigan for for loop yordamida, bu qatorga mos keladigan bloklar atrofida chegara o'rnatiladi. Bu tsikl tugagandan so'ng, rasmdagi ob'ektlar va teshiklar soniga ko'ra, yana bir pastadir boshlanadi. Bu safar biz massivdan maydon kabi ba'zi xususiyatlarni to'playdigan va ob'ektlar va teshiklar sonini o'z ichiga olgan ma'lumotlarni saqlaydigan regionprops funktsiyasidan foydalanamiz. Ushbu ma'lumotlardan foydalanib, biz bu ob'ektlarning maydonini va perimetrini tsentroid shakli yordamida hisoblaymiz. Dumaloq ob'ektning o'lchov birligini hisoblab chiqqandan so'ng, natijalarni taqqoslash uchun chegara belgilanadi va bu o'lchovni hisoblangan tsentroidlar yonida matn sifatida tuzamiz. Yakuniy kod tasvirdagi turli hujayralarning yumaloqligini ko'rsatadi va qiymatga yaqin bo'lgan qiymatlar boshqalarga qaraganda yumaloqroq bo'ladi. 1 qiymati, hujayraning to'liq yumaloq va yaxshi holatda bo'lishini bildiradi.

Tavsiya: