Სარჩევი:

BME 60B Sandbox პროექტი: 6 ნაბიჯი
BME 60B Sandbox პროექტი: 6 ნაბიჯი

ვიდეო: BME 60B Sandbox პროექტი: 6 ნაბიჯი

ვიდეო: BME 60B Sandbox პროექტი: 6 ნაბიჯი
ვიდეო: BME Sandbox Project 2024, ივლისი
Anonim
BME 60B Sandbox Project
BME 60B Sandbox Project

ჩვენი Sandbox პროექტი მიზნად ისახავს ბიოლოგიურ მკვლევარებს დავეხმაროთ უჯრედების ნიმუშების ანალიზში და გაარკვიონ მათი უჯრედების მდგომარეობა. მას შემდეგ, რაც მომხმარებელი შეიყვანს უჯრედის ნიმუშის სურათს, ჩვენი კოდი ამუშავებს სურათს, რომ მოამზადოს იგი უჯრედების დასათვლელად, გამოსახულების ნაცრისფერ და ორობითში გადაყვანით. კოდი იყენებს ზღურბლს, რომ ამოიღოს ჭარბი ინფორმაცია, რომელიც არ ეხება რეალურ უჯრედებს, რათა ზუსტად აღმოაჩინოს უჯრედების მასები. სურათის უჯრედების რაოდენობის დათვლის შემდეგ, ჩვენი კოდი იძლევა სურათის პიქსელის ზომას და შემდეგ პოულობს უჯრედის ფართობის განაწილებას უჯრედების რაოდენობის შედგენით უჯრედების ფართობის წინააღმდეგ, რათა მომხმარებელს მიეცეს შესართავი, კულტურის კერძის ზედაპირის პროცენტი, რომელიც დაფარულია ინტერესის უჯრედებით. შესართავიდან გამომდინარე, მკვლევარს შეუძლია განსაზღვროს უნდა გაიაროს თუ არა უჯრედები; უჯრედების გავლა გულისხმობს უჯრედების ან მიკროორგანიზმების სიცოცხლის ან რაოდენობის გაფართოებას, ზოგიერთი კულტურის გადატანა ახალ ზრდის გარემოში და ეს სასარგებლოა, როდესაც უჯრედები ძალიან დიდი ხდებიან ან საკვებს ამთავრებენ. კოდის გაშვებისა და სურათის დამუშავების შემდეგ, მომხმარებელს შეუძლია გადაწყვიტოს მიიღებს თუ არა უარყოფს შედეგებს და საჭიროების შემთხვევაში გააგრძელებს ბარიერის შეცვლას მონაცემების უკეთესი მოპოვებისთვის.

ნაბიჯი 1: შეარჩიეთ და დააკონფიგურირეთ სურათი ანალიზისთვის

აირჩიეთ და დააკონფიგურირეთ სურათი ანალიზისთვის
აირჩიეთ და დააკონფიგურირეთ სურათი ანალიზისთვის

ჩვენი კოდის პირველი ნაბიჯი არის შესაბამისი სურათის შერჩევა და მისი კონფიგურაცია Matlab– ში ანალიზისთვის. ჩვენ შეგვიძლია ავირჩიოთ სურათი uigetfile ფუნქციის გამოყენებით, რომელიც გვაძლევს საშუალებას ავიღოთ ნებისმიერი ფაილი და ჩავდოთ პროგრამაში. შემდეგ, imread– ის გამოყენებით ჩვენ ვკითხულობთ სურათს და ვაკეთებთ მას კონფიგურაციას ანალიზისთვის Matlab– ში. შემდეგ შერჩეული სურათი ნაჩვენებია ქვეპლოტზე.

ნაბიჯი 2: ბარიერი და GUI

ბარიერი და GUI
ბარიერი და GUI
ბარიერი და GUI
ბარიერი და GUI

კოდის დასაწყისში სურათი არჩეულია "uigetfile" - ის გამოყენებით და შემდეგ ამ სურათის განსაზღვრა ცვლადით. ცვლადი შემდგომში გამოყენებული იქნება კოდის იდენტიფიცირებისას სხვადასხვა ანალიზის გაშვებისას. 2x2 ქვეპლოტი იქმნება ფიგურაში. 1 პოზიციაზე, ნაჩვენები იქნება ორიგინალური სურათი. კოდის შემდეგი მონაკვეთი არის ადგილი, სადაც ხდება ბარიერის კორექტირება. თავდაპირველად გამოიყენება 0.6 ბარიერის ნაგულისხმევი მნიშვნელობა და ნაჩვენებია ქვეპლოტის მე -2 პოზიციაზე. შემდეგ if განცხადება გამოიყენება იმის დასადგენად, სურს თუ არა მომხმარებელს ბარიერის შენარჩუნება ან მისი მორგება. მომხმარებელს შეუძლია შეცვალოს ბარიერი GUI გამოყენებით, რომელიც მოიცავს სურათს სხვადასხვა ბარიერის პირობებში, სლაიდერს და შენახვის ღილაკს. ბარიერის დადგენის შემდეგ, მომხმარებელი დააწკაპუნებს შენახვის ღილაკზე სურათის შესანახად და ის ინახება მომხმარებლების MATLAB ფაილებში, როგორც-p.webp

ნაბიჯი 3: კონტურების შედგენა და უჯრედების განაწილება

კონტურების შედგენა და უჯრედების განაწილება
კონტურების შედგენა და უჯრედების განაწილება
კონტურების შედგენა და უჯრედების განაწილება
კონტურების შედგენა და უჯრედების განაწილება

კოდის შემდეგი ნაწილი ასახავს კონტურებს. არსებობს მარყუჟი, რომელშიც უჯრედები შემოსაზღვრულია წითელი პერიმეტრით, ხოლო ის უჯრედები, რომლებიც სხვა უჯრედის თავზეა, მწვანეა. ასახული სურათი შემდეგ ნაჩვენებია მე –3 პოზიციაში ინტერაქტიული მანძილის ხაზით. ეს ხაზი განსაზღვრავს პიქსელების რაოდენობას იმ ხაზში, რომელიც მორგებულია მომხმარებლის მიერ პიქსელიდან მილიმეტრამდე გადამყვანზე. მანძილის ფაქტორი მრავლდება რეგიონის მიხედვით განსაზღვრული ფართობი და ფართობი ახლა გამოიხატება მილიმეტრ კვადრატში. შემდეგ მონაცემები ნაჩვენებია ჰისტოგრამის გამოყენებით, რომ ნახოთ უჯრედების განაწილება მისი ფართობის მიხედვით. ეს ჰისტოგრამა ნაჩვენები იქნება მე –4 პოზიციაში.

ნაბიჯი 4: გადააკეთეთ უჯრედის სურათი

გადააკეთეთ უჯრედის სურათი
გადააკეთეთ უჯრედის სურათი

ამ ნაბიჯში ჩვენ ავიღეთ ნაცრისფერი მასშტაბის გამოსახულება და დავინახეთ, გავფილტრეთ და გადავაბრუნეთ. ამ ფუნქციების შესრულება გამოსახულებაზე ამოიღო ხმაურიანი პიქსელები, რომლებიც შეიძლება უჯრედებში ცდებოდეს და გამოსახულება უფრო გლუვი და რბილი იყოს უჯრედის კიდეების ირგვლივ. ეს გაკეთდა გამოსახულების უჯრედების ამოსაღებად, როგორც განმასხვავებელი "ბუშტუკები", რომლებიც ინტენსივობით განსხვავდებოდა ფონისგან. "Blobs" იყო მაღალი ინტენსივობის თეთრი გამოსახულებები და ფონი შავი. თუ ცოტა მეტი დრო დაგვრჩებოდა, ჩვენ გამოვიყენებდით Blob გამოსახულების სხვაგვარ კონვერტაციას imbinarize ფუნქციის ნაცვლად, რათა უფრო ზუსტი და უფრო მორგებული ყოფილიყო ჩვენს სურათებზე, მაგრამ მეტი დრო დაგვჭირდა ფუნქციის შესასწავლად და განსახორციელებლად.

ნაბიჯი 5: დაითვალეთ უჯრედები და გამოთვალეთ უჯრედების შესართავი

უჯრედების დათვლა და უჯრედების შესართავის გამოთვლა
უჯრედების დათვლა და უჯრედების შესართავის გამოთვლა

კოდის ამ საფეხურზე ჩვენ მიზნად დავისახეთ იმ უჯრედების რაოდენობა, რომლებიც გამოსახულებაში იყო. ჩვენ ძირითადად ვიყენებდით ფუნქციის რეგიონის პროპს ბლოკების ფართობების გამოსათვლელად და თუ ფართობი გამოითვლება ჩვენს სასურველ საზღვრებში, ის გამოისახება ქვეგანყოფილებაზე. საზღვრები დადგენილია მცირე ზომის ხმაურიანი პიქსელების ან დიდი ინტენსივობის ამოღების მიზნით, რომლებიც არ იყო უჯრედები. უჯრედების მრიცხველი დაითვლის ცენტროიდებს, რომლებიც მაშინ იყო შედგენილი და დაამატებდა მათ მრიცხველს for for loop- ში. მას შემდეგ, რაც უჯრედების არეალი განისაზღვრა, ჩვენ შევძელით გამოთვლა შესართავი. კოდში ამ ნაბიჯის მთავარი მნიშვნელობა იყო უჯრედების შესართავის პოვნა და ეს გადამწყვეტი იყო კოდის ჩვენი საბოლოო მიზნისთვის. ჩვენ ეს გავაკეთეთ, გამოვთვალეთ პიქსელების (ჯამი (allAreas)) თითოეულ ბლოკში შეჯამებით და შემდეგ გავყოთ გამოსახულების მთლიანი პიქსელის მნიშვნელობით (numel (img)). ეს თანაფარდობა მოგვცემს შესართავს და თუ ის 80% -ზე მეტი იქნება, ვიდრე დროა, რომ უჯრედები მკვლევარმა გაიაროს. ჩვენ ვცდილობდით ვიყოთ რაც შეიძლება ზუსტი და ზუსტი, მაგრამ შეზღუდული დროით ასე მოხდა უზუსტობა. თუ დრო ნებადართული იქნებოდა, ჩვენ ვიკვლევდით გზებს, რათა უფრო ზუსტი გამხდარიყო ბუშტუკების დათვლა, როგორიცაა ფილტრაციის ტექნიკა და/ან Hough Transform, რადგან ჯერ არ ჩატარებულა საკმარისი კვლევა ფილტრაციის ტექნიკის გამოსაცდელად.

ნაბიჯი 6: უჯრედების მრგვალი ფორმა

უჯრედების მრგვალი ფორმა
უჯრედების მრგვალი ფორმა
უჯრედების მრგვალობა
უჯრედების მრგვალობა

სანამ შევძლებთ სურათის ბუშტუკების მრგვალობის გაზომვას, ჩვენ უნდა გადავიყვანოთ RGB– დან ნაცრისფერში, გადავიღოთ ბინარიზაცია, გადავაბრუნოთ და გავფილტროთ სურათი. გაფილტვრის ტექნიკა იყენებს bwareaopen ფუნქციას, რომელიც გაფილტრავს ინტერესის სურათს და შლის ძალიან მცირე ზომის სპეციფიკას ან პიქსელს, რომელიც არ წარმოადგენს უჯრედის ზომას. სტრუქტურული ელემენტი იქმნება დისკის ფორმით და 2 – ის მიმდებარედ და იგი გამოიყენება ნებისმიერი სიცარიელის შესავსებად ფონზე ან უჯრედებში. შემდეგ ჩვენ ვიყენებთ ფუნქციას bwboundaries, რომელიც თვალყურს ადევნებს ბლოკებს და ინახავს მას მატრიცაში. შემდეგ ჩვენ ვასახელებთ გამოსახულებას სხვადასხვა ფერის გამოყენებით, ისე რომ ის გახდება უფრო ნათელი ვიზუალი. შემდეგი, for მარყუჟის გამოყენებით, რომელიც გადის სურათზე ნაპოვნი ობიექტებისა და ხვრელების რაოდენობის მიხედვით, ის ადგენს საზღვარს ამ მასივის შესაბამისი ბლოკების გარშემო. როდესაც ეს მარყუჟი დასრულდება, იწყება სხვა მარყუჟი, ისევ სურათზე ნაპოვნი ობიექტებისა და ხვრელების რაოდენობის მიხედვით. ამჯერად ჩვენ ვიყენებთ რეგიონის ფუნქციას, რომელიც აგროვებს გარკვეულ თვისებებს, როგორიცაა ფართობი მასივიდან და ინახავს ინფორმაციას, რომელიც შეიცავს ობიექტებისა და ხვრელების რაოდენობას. ამ ინფორმაციის გამოყენებით, ჩვენ ვიანგარიშებთ ამ ობიექტების ფართობს და პერიმეტრს ცენტროიდული ფორმის გამოყენებით. ბარიერი დადგენილია შედეგების შესადარებლად მას შემდეგ რაც გამოვთვლით წრიული ობიექტის მეტრულ ერთეულს და ამ გაზომვას დავხატავთ როგორც ტექსტი გამოთვლილი ცენტროიდების გვერდით. საბოლოო კოდი აჩვენებს სურათში ნაპოვნი სხვადასხვა უჯრედების სიმრგვალეს და ნებისმიერ მნიშვნელობასთან ახლოს ნებისმიერი სხვა იქნება უფრო მრგვალი ვიდრე სხვა. 1 -ის მნიშვნელობა ნიშნავს, რომ უჯრედი არის სრულყოფილად მრგვალი და კარგ მდგომარეობაშია გასავლელად.

გირჩევთ: