![დიაბეტური რეტინოპათიის ავტომატური დიაგნოზი MATLAB– ის საშუალებით: 33 ნაბიჯი დიაბეტური რეტინოპათიის ავტომატური დიაგნოზი MATLAB– ის საშუალებით: 33 ნაბიჯი](https://i.howwhatproduce.com/images/002/image-4639-51-j.webp)
Სარჩევი:
- ნაბიჯი 1: წინაპირობები
- ნაბიჯი 2: წინაპირობები (არა)
- ნაბიჯი 3: წინაპირობები (არა)
- ნაბიჯი 4: წინაპირობები (არა)
- ნაბიჯი 5: გაასუფთავეთ Matlab, რომ მოემზადოთ გაშვებული კოდისთვის
- ნაბიჯი 6: შეარჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით
- ნაბიჯი 7: შეარჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით (არა)
- ნაბიჯი 8: შექმენით 2 ცვლადი (ნორმალური და დიაგნოზირებული) და დააყენეთ თითოეული 0 -ის ტოლი
- ნაბიჯი 9: შექმენით მარყუჟი ნორმალური სურათების ავტომატური ატვირთვისთვის
- ნაბიჯი 10: შექმენით მარყუჟი ნორმალური სურათების ავტომატური ატვირთვისთვის (con't)
- ნაბიჯი 11: სურათის საზღვრების მოჭრა
- ნაბიჯი 12: შექმენით ნაცრისფერი მასშტაბის სურათი
- ნაბიჯი 13: შექმენით კონტრასტული სურათი
- ნაბიჯი 14: გააუმჯობესეთ კონტრასტული სურათი
- ნაბიჯი 15: შექმენით საშუალო ფილტრი
- ნაბიჯი 16: შეაერთეთ საშუალო ფილტრი კონტრასტული გამოსახულებით
- ნაბიჯი 17: გააკეთეთ ახალი საშუალო ნიღაბი პიქსელების გამოკლებით
- ნაბიჯი 18: შექმენით ორობითი გაფილტრული სურათი
- ნაბიჯი 19: ამოიღეთ გაფილტრულ სურათებში ნაპოვნი მცირე ზომის ბუშტუკები
- ნაბიჯი 20: შექმენით დისკის სტრუქტურირების ელემენტი
- ნაბიჯი 21: შეასრულეთ მორფოლოგიური მჭიდრო ოპერაციები
- ნაბიჯი 22: იპოვნეთ ობიექტები, რომლებიც დაკავშირებულია მინიმუმ 8 -ით
- ნაბიჯი 23: იპოვეთ დაკავშირებული პიქსელების მაქსიმალური რაოდენობა
- ნაბიჯი 24: დააყენეთ პიქსელის მაქსიმალური მნიშვნელობები 0 -ზე და იპოვეთ პიქსელები> = 26 პიქსელიანი კავშირით
- ნაბიჯი 25: ამოიღეთ სისხლის გემები სურათზე
- ნაბიჯი 26: ფიგურის ჩვენება
- ნაბიჯი 27: ამოიღეთ გემები და დაითვალეთ სისხლის ბუშტუკები
- ნაბიჯი 28: ბადურის სურათის დიაგნოსტიკა გამოვლენილი სისხლის შედედების რაოდენობის მიხედვით
- ნაბიჯი 29: თუ არსებობს 5 -ზე მეტი ბუშტუკი…
- ნაბიჯი 30: გაიმეორეთ ნორმალური სურათების გაფილტვრის პროცესი სურათის ციფრული მნიშვნელობებით, როგორც 2 და 3
- ნაბიჯი 31: გაიმეორეთ მთელი პროცესი დიაგნოზირებული სურათებისთვის
- ნაბიჯი 32: სტატისტიკური ანალიზი
- ნაბიჯი 33: იპოვნეთ ნდობის ინტერვალი
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50
![დიაბეტური რეტინოპათიის ავტომატური დიაგნოზი MATLAB– ის საშუალებით დიაბეტური რეტინოპათიის ავტომატური დიაგნოზი MATLAB– ის საშუალებით](https://i.howwhatproduce.com/images/002/image-4639-52-j.webp)
![დიაბეტური რეტინოპათიის ავტომატური დიაგნოზი MATLAB– ის საშუალებით დიაბეტური რეტინოპათიის ავტომატური დიაგნოზი MATLAB– ის საშუალებით](https://i.howwhatproduce.com/images/002/image-4639-53-j.webp)
(იხილეთ კოდის მონახაზი ზემოთ)
დიაბეტური რეტინოპათია არის დიაბეტთან დაკავშირებული თვალის დაავადება, რომელიც გამოწვეულია სისხლში შაქრის მაღალი დონით. სისხლში შაქრის მაღალი დონე იწვევს ბადურის სისხლძარღვების შეშუპებას, რაც იწვევს გაფართოებულ სისხლძარღვებს და სისხლძარღვების გაჟონვასაც კი, რაც ბადურის სურათებში მუქ ლაქებს იწვევს. ამ კოდით, ჩვენ მიზნად ვიყენებთ სისხლძარღვების გაჟონვის ლაქების გამოჩენას დიაბეტური რეტინოპათიის ფონზე, თუმცა რეალურ სამყაროში საჭირო იქნება შემდგომი დიაგნოსტიკის ტექნიკა. ამ კოდის მიზანია სურათის დამუშავებისა და დიაგნოსტიკის ავტომატიზირება ბადურის სურათებში მუქი ლაქების მეშვეობით ნაჩვენები დიაბეტური რეტინოპათიის ნიშნების გამოვლენის მიზნით.
10 ნორმალური ბადურის სურათი და 10 დიაგნოზირებული ბადურის სურათი დამუშავდა კოდის საშუალებით, რომელიც ჯერ კითხულობს და ფილტრავს სურათებს და შემდეგ ადგენს მუქ ლაქებს იმის დასადგენად, არის თუ არა დიაბეტური რეტინოპათიის სიმპტომები მოცემულ ზღურბლზე დაყრდნობით. შედეგები იბეჭდება ბრძანების ფანჯარაში მაყურებლის ინტერპრეტაციისთვის.
ნაბიჯი 1: წინაპირობები
![წინაპირობები წინაპირობები](https://i.howwhatproduce.com/images/002/image-4639-54-j.webp)
1. დარწმუნდით, რომ თქვენს კომპიუტერში გადმოწერილი გაქვთ MATLAB პროგრამა.
2. ჩამოტვირთეთ ბმულიდან ნაპოვნი txt ფაილი. (დააჭირეთ ‘ctrl+s’, რათა შეინახოთ იმავე დირექტორიაში, როგორც MATLAB კოდი)
ნაბიჯი 2: წინაპირობები (არა)
![წინაპირობები (არა) წინაპირობები (არა)](https://i.howwhatproduce.com/images/002/image-4639-55-j.webp)
![წინაპირობები (არა) წინაპირობები (არა)](https://i.howwhatproduce.com/images/002/image-4639-56-j.webp)
4. გახსენით MATLAB და ბრძანების ფანჯარაში ჩაწერეთ ‘uiimport’.
5. შეარჩიეთ officialdiagnoses.txt ფაილი და შეიტანეთ იგი MATLAB- ში, როგორც უჯრედის მატრიცა.
6. დარწმუნდით, რომ ხედავთ "ოფიციალურ დიაგნოზებს", როგორც ცვლადს სამუშაო სივრცეში.
ნაბიჯი 3: წინაპირობები (არა)
![წინაპირობები (არა) წინაპირობები (არა)](https://i.howwhatproduce.com/images/002/image-4639-57-j.webp)
7. ჩამოტვირთეთ ფუნქცია ModWald.m, რომელსაც შეუძლია მიიღოს ზემოთ კოდიდან ან გადმოწეროს ტილოდან.
(კოდი მოწოდებულია პროფესორ კინგისა და პროფესორ ჩოის მიერ)
ნაბიჯი 4: წინაპირობები (არა)
![წინაპირობები (არა) წინაპირობები (არა)](https://i.howwhatproduce.com/images/002/image-4639-58-j.webp)
8. ჩამოტვირთეთ 400 ნედლეული სურათი STARE პროექტის მონაცემთა განყოფილებიდან.
ნაბიჯი 5: გაასუფთავეთ Matlab, რომ მოემზადოთ გაშვებული კოდისთვის
![გაასუფთავეთ Matlab, რომ მოემზადოთ გაშვებული კოდისთვის გაასუფთავეთ Matlab, რომ მოემზადოთ გაშვებული კოდისთვის](https://i.howwhatproduce.com/images/002/image-4639-59-j.webp)
დაამატეთ კოდი:
1. დახურეთ ყველა (იხურება ყველა ადრე გახსნილი სურათი)
2. clearvars - გარდა ოფიციალური დიაგნოზებისა (ასუფთავებს ყველა ცვლადს, გარდა იმპორტირებული ოფიციალური დიაგნოზის txt ფაილისა)
3. cclc (ასუფთავებს ბრძანების ფანჯარას)
ნაბიჯი 6: შეარჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით
![აირჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით აირჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით](https://i.howwhatproduce.com/images/002/image-4639-60-j.webp)
![შეარჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით შეარჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით](https://i.howwhatproduce.com/images/002/image-4639-61-j.webp)
1. აიღეთ დიაგნოზის ტექსტური ფაილი და ამოიღეთ სურათის სახელები. ეს სახელები შეიცავს ტექსტურ ფაილის პირველ სვეტს, რათა ამოიღოთ ისინი "ოფიციალური დიაგნოზები (:, 1)". სურათის სახელების მატრიცა მიენიჭა ცვლადს, "all_image_numbers"
2. გადააკეთეთ all_image_numbers ცვლადი უჯრედის მასივიდან მატრიცის მასივში cell2mat ფუნქციის გამოყენებით
ნაბიჯი 7: შეარჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით (არა)
![აირჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით (არა) აირჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით (არა)](https://i.howwhatproduce.com/images/002/image-4639-62-j.webp)
![აირჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით (არა) აირჩიეთ 10 ნორმალური თვალის სურათი და 10 სურათი დიაბეტური რეტინოპათიის სიმპტომებით (არა)](https://i.howwhatproduce.com/images/002/image-4639-63-j.webp)
3. აირჩიეთ 10 ნორმალური თვალის სურათი კოდის გასაშვებად. ამ შემთხვევაში შერჩეული სურათები იყო 278, 199, 241, 235, 35, 77, 82, 164, 239, 170.
მოათავსეთ ეს რიცხვები მატრიცაში და მიანიჭეთ მათ ცვლადს, რომელსაც დაარქმევენ სურათების ჩატვირთვისას.
4. გაიმეორეთ ნაბიჯი 3 ბადურის სურათებისთვის, რომლებიც დიაგნოზირებულია დიაბეტური რეტინოპათიით. ამ შემთხვევაში შერჩეული სურათები იყო 139, 137, 136, 135, 133, 140, 141, 116, 157, 188.
ნაბიჯი 8: შექმენით 2 ცვლადი (ნორმალური და დიაგნოზირებული) და დააყენეთ თითოეული 0 -ის ტოლი
![შექმენით 2 ცვლადი (ნორმალური და დიაგნოზირებული) და დააყენეთ თითოეული 0 -ის ტოლი შექმენით 2 ცვლადი (ნორმალური და დიაგნოზირებული) და დააყენეთ თითოეული 0 -ის ტოლი](https://i.howwhatproduce.com/images/002/image-4639-64-j.webp)
შექმენით ეს ცვლადები for მარყუჟის წინ, რათა დაიწყოთ მარყუჟის რიცხვები.
ნაბიჯი 9: შექმენით მარყუჟი ნორმალური სურათების ავტომატური ატვირთვისთვის
![შექმენით მარყუჟი ნორმალური სურათების ავტომატურად ატვირთვისთვის შექმენით მარყუჟი ნორმალური სურათების ავტომატურად ატვირთვისთვის](https://i.howwhatproduce.com/images/002/image-4639-65-j.webp)
1. შექმენით მარყუჟის for
2. ჩამოთვალეთ ცვლადი (i, ამ შემთხვევაში) 1-10 მნიშვნელობების მატრიცაზე. ეს დათვლის ცვლადი გამოყენებული იქნება თითოეული სურათის ინდივიდუალურად გამოსაძახებლად
3. მიიღეთ i ელემენტი სურათების მატრიცაში, რომ ამოიღოთ და გადაიყვანოთ გამოსახულების სახელი სტრიქონიდან რიცხვზე num2str ფუნქციის გამოყენებით.
იპოვეთ გამოსახულების სახელში არსებული ციფრების რაოდენობა რიცხვითი ფუნქციის გამოყენებით. მიანიჭეთ ეს მნიშვნელობა ცვლადს, digit_normal. ეს რიცხვი უნდა იყოს 1 ერთნიშნა რიცხვებზე, 2 ორნიშნა რიცხვებზე და 3 სამნიშნა რიცხვებზე. ეს ინფორმაცია გამოყენებული იქნება სურათების ავტომატური გამოძახებისთვის.
ნაბიჯი 10: შექმენით მარყუჟი ნორმალური სურათების ავტომატური ატვირთვისთვის (con't)
![შექმენით მარყუჟი ნორმალური სურათების ავტომატური ატვირთვისთვის (არა) შექმენით მარყუჟი ნორმალური სურათების ავტომატური ატვირთვისთვის (არა)](https://i.howwhatproduce.com/images/002/image-4639-66-j.webp)
3. შექმენით if განცხადება, რომელიც შეიცავს სამივე შესაძლებლობას წინა საფეხურებიდან. თუ სურათის სახელს აქვს 1 ციფრი, გამოსახულებას ეწოდება "im000", თუ მას აქვს 2 ციფრი, გამოსახულებას ეწოდება "im00", ხოლო თუ მას აქვს 3 გამოსახულება ეწოდება "im0".
4. თითოეული if განცხადების ქვეშ მიანიჭეთ ცვლადი imread „im“- ს შესაბამისი, if განაცხადის შესაბამისი რიცხვით ნულებით (ზემოთ აღწერილი), რასაც მოჰყვება i.
ნაბიჯი 11: სურათის საზღვრების მოჭრა
![ამოჭერით სურათის საზღვრები ამოჭერით სურათის საზღვრები](https://i.howwhatproduce.com/images/002/image-4639-67-j.webp)
მიიღეთ ორიგინალური სურათი და გამოიყენეთ imcrop ფილტრი შავი საზღვრების აღმოსაფხვრელად და ცვლად I_crop- ს მიანიჭეთ. მოსავლის მართკუთხედი მითითებულია მატრიცის გამოყენებით [95, 95, 500, 410].
ნაბიჯი 12: შექმენით ნაცრისფერი მასშტაბის სურათი
![შექმენით ნაცრისფერი მასშტაბის სურათი შექმენით ნაცრისფერი მასშტაბის სურათი](https://i.howwhatproduce.com/images/002/image-4639-68-j.webp)
მიიღეთ დაჭრილი სურათი და გამოიყენეთ rbg2gray ფილტრი, რომ შეცვალოთ გამოსახულება ნაცრისფერში. მიანიჭეთ ეს სურათი ცვლადი I2.
ნაბიჯი 13: შექმენით კონტრასტული სურათი
![შექმენით კონტრასტული სურათი შექმენით კონტრასტული სურათი](https://i.howwhatproduce.com/images/002/image-4639-69-j.webp)
გადაიღეთ სურათი I2 და გამოიყენეთ imadjust ინტენსივობის მნიშვნელობების გამოსაყენებლად.
მიიღეთ მნიშვნელობები, რომლებიც დიაპაზონშია [0.2, 0.7] და ხელახლა გადააკეთეთ ისინი [0, 1]. გამა არის დაყენებული 0.8 -ზე, რათა გამოსახულება უფრო ნათელი გახდეს. მიანიჭეთ ახალი სურათი I_ მორგებული.
ნაბიჯი 14: გააუმჯობესეთ კონტრასტული სურათი
![გააუმჯობესეთ კონტრასტული სურათი გააუმჯობესეთ კონტრასტული სურათი](https://i.howwhatproduce.com/images/002/image-4639-70-j.webp)
მიიღეთ I_ მორგებული სურათი და გამოიყენეთ adapthisteq ფუნქცია კონტრასტის გასაუმჯობესებლად.
Adapthisteq სინტაქსი მოითხოვს სურათის სახელს, I_ მორგებული, ‘numTiles’, numTiles– ის ზომას, ‘nBins’ და ურნების რაოდენობას. NumTiles– ის ზომა არის [8 8], გამოსახულების გაყოფა 8x8 ფილაზე და ურნების რაოდენობა 28 – ზე. მიანიჭეთ სურათი I_constrast.
ნაბიჯი 15: შექმენით საშუალო ფილტრი
![შექმენით საშუალო ფილტრი შექმენით საშუალო ფილტრი](https://i.howwhatproduce.com/images/002/image-4639-71-j.webp)
შექმენით ცვლადი სახელწოდებით 'meanfilt' fspecial ფუნქციის გამოყენებით. შეიყვანეთ "საშუალო ფუნქცია" საშუალო ფილტრის შესაქმნელად და ჩასვით [90 90] მოცურების ფანჯრის ზომისთვის.
ნაბიჯი 16: შეაერთეთ საშუალო ფილტრი კონტრასტული გამოსახულებით
![შეუთავსეთ საშუალო ფილტრი კონტრასტული გამოსახულებით შეუთავსეთ საშუალო ფილტრი კონტრასტული გამოსახულებით](https://i.howwhatproduce.com/images/002/image-4639-72-j.webp)
შექმენით ახალი ცვლადი სახელად mask_mean და გამოიყენეთ imfilter ფუნქცია I_contrast გამოსახულების გადასაღებად და ადრე შექმნილი საშუალო ფილტრის დასაყენებლად.
ნაბიჯი 17: გააკეთეთ ახალი საშუალო ნიღაბი პიქსელების გამოკლებით
![გააკეთეთ ახალი საშუალო ნიღაბი პიქსელების გამოკლებით გააკეთეთ ახალი საშუალო ნიღაბი პიქსელების გამოკლებით](https://i.howwhatproduce.com/images/002/image-4639-73-j.webp)
შექმენით ცვლადი სახელად mask_mean2 და გამოიყენეთ imsubtract ფუნქცია, რომ გამოვაკლოთ თითოეული პიქსელის მნიშვნელობა I_contrast შესაბამისი პიქსელიდან mask_mean- ში.
ნაბიჯი 18: შექმენით ორობითი გაფილტრული სურათი
![შექმენით ორობითი გაფილტრული სურათი შექმენით ორობითი გაფილტრული სურათი](https://i.howwhatproduce.com/images/002/image-4639-74-j.webp)
ნაცრისფერი მასშტაბის სურათები გადააქციეთ შავ -თეთრად იმბინარიზაციის გამოყენებით. შეყვანის mask_mean2, "ადაპტირებული", "წინა პლანზე", "მუქი", "მგრძნობელობა", 0.6. მიანიჭეთ ეს ახალი სურათი mask_binarize.
ნაბიჯი 19: ამოიღეთ გაფილტრულ სურათებში ნაპოვნი მცირე ზომის ბუშტუკები
![ამოიღეთ გაფილტრული სურათებიდან ნაპოვნი მცირე ზომის ბუშტუკები ამოიღეთ გაფილტრული სურათებიდან ნაპოვნი მცირე ზომის ბუშტუკები](https://i.howwhatproduce.com/images/002/image-4639-75-j.webp)
წაშალეთ 100 პიქსელზე ნაკლები კავშირის მქონე ობიექტები bwareaopen ფუნქციის გამოყენებით mask_binarize და დააყენეთ ბარიერის მნიშვნელობა 100 -ზე. მიანიჭეთ ცვლადი bw.
ნაბიჯი 20: შექმენით დისკის სტრუქტურირების ელემენტი
![შექმენით დისკის სტრუქტურირების ელემენტი შექმენით დისკის სტრუქტურირების ელემენტი](https://i.howwhatproduce.com/images/002/image-4639-76-j.webp)
შექმენით დისკის სტრუქტურირების ელემენტი (2 რადიუსით) strel ფუნქციის გამოყენებით. მიანიჭეთ მას se.
ნაბიჯი 21: შეასრულეთ მორფოლოგიური მჭიდრო ოპერაციები
![მორფოლოგიური მჭიდრო ოპერაციების შესრულება მორფოლოგიური მჭიდრო ოპერაციების შესრულება](https://i.howwhatproduce.com/images/002/image-4639-77-j.webp)
მიიღეთ bw და გამოიყენეთ imclose ფუნქცია სტრუქტურულ ელემენტზე, რათა შეასრულოს მორფოლოგიური მჭიდრო ოპერაცია ობიექტზე.
ნაბიჯი 22: იპოვნეთ ობიექტები, რომლებიც დაკავშირებულია მინიმუმ 8 -ით
![იპოვნეთ ობიექტები, რომლებიც დაკავშირებულია მინიმუმ 8 -ით იპოვნეთ ობიექტები, რომლებიც დაკავშირებულია მინიმუმ 8 -ით](https://i.howwhatproduce.com/images/002/image-4639-78-j.webp)
აიღეთ bw და გამოიყენეთ bwconncomp, რათა იპოვოთ ობიექტები გამოსახულების მინიმუმ 8 -ით. მიანიჭეთ რიცხვის გამომავალი cc_1- ს.
ნაბიჯი 23: იპოვეთ დაკავშირებული პიქსელების მაქსიმალური რაოდენობა
![იპოვეთ დაკავშირებული პიქსელების მაქსიმალური რაოდენობა იპოვეთ დაკავშირებული პიქსელების მაქსიმალური რაოდენობა](https://i.howwhatproduce.com/images/002/image-4639-79-j.webp)
![იპოვეთ დაკავშირებული პიქსელების მაქსიმალური რაოდენობა იპოვეთ დაკავშირებული პიქსელების მაქსიმალური რაოდენობა](https://i.howwhatproduce.com/images/002/image-4639-80-j.webp)
გამოიყენეთ cellfun ფუნქცია CC- ის ყველა უჯრედზე ფუნქციის „numel“შესასრულებლად. ეს პოულობს ელემენტების რაოდენობას PixelIdxList უჯრედში. მიანიჭეთ მნიშვნელობა "numPixels" - ს.
იპოვეთ მაქსიმალური მნიშვნელობები numPIxels– ში. მიანიჭეთ ყველაზე დიდი მაქსიმუმი "უდიდესს" და მაქსიმალური მნიშვნელობის ინდექსი "idx" - ს.
ნაბიჯი 24: დააყენეთ პიქსელის მაქსიმალური მნიშვნელობები 0 -ზე და იპოვეთ პიქსელები> = 26 პიქსელიანი კავშირით
![ამოიღეთ სისხლის გემები სურათზე ამოიღეთ სისხლის გემები სურათზე](https://i.howwhatproduce.com/images/002/image-4639-81-j.webp)
= 26 პიქსელის კავშირი "src =" https://content.instructables.com/ORIG/FXY/DTW3/JEOIIEL4/FXYDTW3JEOIIEL4-p.webp
![ფიგურის ჩვენება ფიგურის ჩვენება](https://i.howwhatproduce.com/images/002/image-4639-82-j.webp)
= 26 პიქსელის კავშირი "src =" https://content.instructables.com/ORIG/FXO/GBX1/JEOIIELB/FXOGBX1JEOIIELB-p.webp
![ამოიღეთ გემები და დაითვალეთ სისხლის ბუშტუკები ამოიღეთ გემები და დაითვალეთ სისხლის ბუშტუკები](https://i.howwhatproduce.com/images/002/image-4639-83-j.webp)
= 26 Pixel Connectivity "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">
![ბადურის გამოსახულების დიაგნოსტიკა გამოვლენილი სისხლის შედედების რაოდენობის მიხედვით ბადურის გამოსახულების დიაგნოსტიკა გამოვლენილი სისხლის შედედების რაოდენობის მიხედვით](https://i.howwhatproduce.com/images/002/image-4639-84-j.webp)
= 26 Pixel Connectivity "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">
დააყენეთ პიქსელები ყველაზე დიდი მნიშვნელობებით გამოსახულებაში "bw" 0, რაც პიქსელებს შავდება.
იპოვეთ ობიექტები, რომლებსაც აქვთ კავშირი მინიმუმ 26 პიქსელი სურათზე bwconncomp გამოყენებით. მიანიჭეთ ცვლადი cc_1.
ნაბიჯი 25: ამოიღეთ სისხლის გემები სურათზე
ამოიღეთ სისხლძარღვები, რომლებიც ჯერ კიდევ გამოსახულია სურათზე bwpropfilt ფუნქციის გამოყენებით [0, 0.9].
[0.9, 1] გამორიცხულია, რადგან 1 – თან ახლოს არსებული მნიშვნელობები მიუთითებს ხაზზე. მიანიჭეთ "RemoveVessels" - ს.
ნაბიჯი 26: ფიგურის ჩვენება
თითოეული გაფილტრული გამოსახულების ჩვენება ქვეპლოტში. ჩვენება "საზღვრის" და "მჭიდრო" შეყვანის საშუალებით, აჩვენებს თითოეულ სურათს ქვეპლოტის სტრუქტურაში. დაამატეთ სათაური თითოეულ სურათს, რათა განასხვავოთ რომელი ფილტრი იყო გამოყენებული.
ნაბიჯი 27: ამოიღეთ გემები და დაითვალეთ სისხლის ბუშტუკები
1. აიღეთ "RemoveVessels" და გამოიყენეთ "Centroid" ფუნქცია რეგიონულ პროპორციებში, რათა დაადგინოთ გამოსახულების ობიექტების ცენტროიდები. ეს ობიექტები უნდა შეესაბამებოდეს გამოსახულებაში არსებულ სისხლის შედედებას.
2. დაითვალეთ სისხლის შედედების რაოდენობა, რომლებიც გამოვლენილია ცენტროიდული მატრიცის სიგრძის აღებით.
ნაბიჯი 28: ბადურის სურათის დიაგნოსტიკა გამოვლენილი სისხლის შედედების რაოდენობის მიხედვით
გამოიყენეთ გამონათქვამები სურათის დიაგნოსტიკისთვის, გამოვლენილი სისხლის შედედების რაოდენობის მიხედვით.
თუ გამოვლენილი ცენტროიდების რაოდენობა იყო 5 -ზე ნაკლები ან ტოლი, სურათი ნორმალური იყო.
თუ ცენტროიდების რაოდენობა 5 -ზე მეტი იყო, სურათზე დიაგნოზირებული იყო დიაბეტური რეტინოპათია.
შედეგი იბეჭდება ბრძანების ფანჯარაში fprintf გამოყენებით.
ნაბიჯი 29: თუ არსებობს 5 -ზე მეტი ბუშტუკი…
![თუ არსებობს 5 -ზე მეტი ბლუბი… თუ არსებობს 5 -ზე მეტი ბლუბი…](https://i.howwhatproduce.com/images/002/image-4639-85-j.webp)
გაიმეორეთ ზემოთ მითითებები დიაგნოზირებული სურათებისთვის, როგორც სხვა განცხადება. ეს ნაწილი იმუშავებს, თუ ბუშტუკების რაოდენობა 5 -ზე მეტია.
დაასრულეთ if განცხადება.
ნაბიჯი 30: გაიმეორეთ ნორმალური სურათების გაფილტვრის პროცესი სურათის ციფრული მნიშვნელობებით, როგორც 2 და 3
![გაიმეორეთ გაფილტვრის პროცესი ნორმალური სურათებისთვის გამოსახულების ციფრული მნიშვნელობებით, როგორც 2 და 3 გაიმეორეთ გაფილტვრის პროცესი ნორმალური სურათებისთვის გამოსახულების ციფრული მნიშვნელობებით, როგორც 2 და 3](https://i.howwhatproduce.com/images/002/image-4639-86-j.webp)
![გაიმეორეთ ნორმალური სურათების გაფილტვრის პროცესი სურათის ციფრული მნიშვნელობებით, როგორც 2 და 3 გაიმეორეთ ნორმალური სურათების გაფილტვრის პროცესი სურათის ციფრული მნიშვნელობებით, როგორც 2 და 3](https://i.howwhatproduce.com/images/002/image-4639-87-j.webp)
გაიმეორეთ პროცესი დანარჩენი ორიგინალისთვის, თუ numel როდესაც numel (ციფრების რაოდენობა სურათის ნომერში) უდრის 2 და 3. ეს ასრულებს for loop– ს ნორმალური სურათებისთვის.
დაასრულეთ for loop.
ნაბიჯი 31: გაიმეორეთ მთელი პროცესი დიაგნოზირებული სურათებისთვის
![გაიმეორეთ მთელი პროცესი დიაგნოზირებული სურათებისთვის გაიმეორეთ მთელი პროცესი დიაგნოზირებული სურათებისთვის](https://i.howwhatproduce.com/images/002/image-4639-88-j.webp)
გაიმეორეთ მთელი პროცესი მატრიცის მიერ ჩამოთვლილი დიაგნოზირებული სურათების გამოყენებით "რიცხვები_ექსტრაქტის_დიაგნოზისთვის".
დარწმუნდით, რომ გაიარეთ ყველა ფიგურა (i) და შეცვალეთ იგი ფიგურაში (i+10), ასე რომ დიაგნოზირებული ფიგურები გამოჩნდება 11 -დან 20 -მდე სურათის სახით.
ნაბიჯი 32: სტატისტიკური ანალიზი
![Სტატისტიკური ანალიზი Სტატისტიკური ანალიზი](https://i.howwhatproduce.com/images/002/image-4639-89-j.webp)
1. 'Actual_Diagnosis_Matrix' გამოიყენება txt ფაილში ნაპოვნი ოფიციალური დიაგნოზის შედეგების შესადარებლად. პირველი 10 ნული მიუთითებს იმაზე, რომ პირველი 10 სურათი ნორმალური უნდა იყოს. ბოლო 10 პირობა მიუთითებს იმაზე, რომ ბოლო 10 სურათი უნდა კლასიფიცირდეს როგორც დიაბეტური რეტინოპათია.
2. ორმაგი ტოლობის ნიშანი, რომელიც გამოიყენება 'რიცხვის_სწორების' შესაქმნელად, ქმნის ლოგიკურ მასივს 'Actual_Diagnosis_Matrix' - ის შესაბამისი ელემენტების მნიშვნელობის შედარებისას for -loop- დან.
თითოეული ელემენტისთვის, რომელიც ემთხვევა დიაგნოზს, დაემატება 1, რაც იმას ნიშნავს, რომ კოდმა სწორად დაადგინა ეს სურათი. თუ ის არასწორია, ის მატრიცას დაამატებს 0 -ს.
შემდეგ, თანხის აღება ამატებს ყველა ერთს. სხვა სიტყვებით რომ ვთქვათ, ის პოულობს სწორად დიაგნოზირებული სურათების ჯამს.
3. "საბოლოო_პროცენტი_სწორი" არის გამოთვლილი პროცენტული მაჩვენებელი იმისა, თუ რამდენად ზუსტი კოდია დიაგნოზირებული დიაბეტური რეტინოპათია. სწორად დიაგნოზირებული სურათების რაოდენობა იყოფა 20 -ზე (სურათების საერთო რაოდენობა) და გამრავლებულია 100 -ით, რათა იპოვოს წარმატებული დიაგნოზის პროცენტული მაჩვენებელი.
ნაბიჯი 33: იპოვნეთ ნდობის ინტერვალი
![ნდობის ინტერვალის პოვნა ნდობის ინტერვალის პოვნა](https://i.howwhatproduce.com/images/002/image-4639-90-j.webp)
1. დარწმუნდით, რომ თქვენ გადმოწერილი გაქვთ ModWald.m იმისათვის, რომ მას ფუნქცია უწოდოთ. ფუნქციის გარეშე, თქვენ თვითონ უნდა გამოთვალოთ ნდობის ინტერვალი შეცვლილი ვალდის მეთოდის გამოყენებით.
2. ModWald ფუნქციას აქვს 2 შეყვანა, სადაც პირველი არის სწორად იდენტიფიცირებული სურათების რაოდენობა, ხოლო მეორე არის სურათების საერთო რაოდენობა.
3. ModWald ფუნქცია გამოაქვეყნებს პროპორციების ნდობის ინტერვალის ქვედა და ზედა საზღვრებს შერჩეული მონაცემების სიზუსტისთვის. სხვა სიტყვებით რომ ვთქვათ, ის მოგცემთ პროცენტულ ინტერვალს, სადაც კოდის სიზუსტის ნამდვილი პროცენტი იქნება.
4. გამოიყენეთ fprintf ქვემოთ, რათა გამოუშვათ სტატისტიკა და ნდობის ინტერვალი ბრძანების ფანჯარაში.
> fprintf ('%. ბადურის სურათების 0f პროცენტი სწორად იქნა დიაგნოზირებული ოფიციალური დიაგნოზის მიხედვით. / n / n', Final_percentage_correct)
> fprintf ('ჭეშმარიტი პროცენტი, რომლის დროსაც ჩვენი კოდი სწორად დიაგნოზირებს დიაბეტურ რეტინოპათიას / n მოხვდება დიაპაზონში [%.3f, %.3f], 20 შერჩეული სურათის საფუძველზე / n', ქვედა_შებმული, ზედა_შებმული)
გირჩევთ:
როგორ ავაშენოთ მცენარეთა მონიტორი არდუინოს საშუალებით: 7 ნაბიჯი
![როგორ ავაშენოთ მცენარეთა მონიტორი არდუინოს საშუალებით: 7 ნაბიჯი როგორ ავაშენოთ მცენარეთა მონიტორი არდუინოს საშუალებით: 7 ნაბიჯი](https://i.howwhatproduce.com/images/001/image-302-j.webp)
როგორ ავაშენოთ მცენარეთა მონიტორი Arduino– ს საშუალებით: ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ უნდა გამოვავლინოთ ნიადაგის ტენიანობა ტენიანობის სენსორის გამოყენებით და აანთოთ მწვანე LED, თუ ყველაფერი კარგადაა და OLED ეკრანი და Visuino. უყურეთ ვიდეოს
Raspberry Pi 4 ლეპტოპის/კომპიუტერის საშუალებით Ethernet კაბელის გამოყენებით (მონიტორის გარეშე, Wi-Fi– ს გარეშე): 8 ნაბიჯი
![Raspberry Pi 4 ლეპტოპის/კომპიუტერის საშუალებით Ethernet კაბელის გამოყენებით (მონიტორის გარეშე, Wi-Fi– ს გარეშე): 8 ნაბიჯი Raspberry Pi 4 ლეპტოპის/კომპიუტერის საშუალებით Ethernet კაბელის გამოყენებით (მონიტორის გარეშე, Wi-Fi– ს გარეშე): 8 ნაბიჯი](https://i.howwhatproduce.com/images/001/image-566-j.webp)
დააინსტალირეთ Raspberry Pi 4 ლეპტოპის/კომპიუტერის საშუალებით Ethernet კაბელის გამოყენებით (მონიტორის გარეშე, Wi-Fi– ს გარეშე): ამაში ჩვენ ვიმუშავებთ Raspberry Pi 4 Model-B– ით 1 GB ოპერატიული მეხსიერებით. Raspberry-Pi არის ერთჯერადი კომპიუტერი, რომელიც გამოიყენება საგანმანათლებლო მიზნებისთვის და წვრილმანი პროექტებისთვის, ხელმისაწვდომი ღირებულებით, საჭიროებს 5V 3A დენის წყაროს. ოპერაციული სისტემების მსგავსად
Blynk აპლიკაციის საშუალებით გაკონტროლება ინტერნეტით Nodemcu– ს გამოყენებით: 5 ნაბიჯი
![Blynk აპლიკაციის საშუალებით გაკონტროლება ინტერნეტით Nodemcu– ს გამოყენებით: 5 ნაბიჯი Blynk აპლიკაციის საშუალებით გაკონტროლება ინტერნეტით Nodemcu– ს გამოყენებით: 5 ნაბიჯი](https://i.howwhatproduce.com/images/001/image-766-j.webp)
Blynk აპლიკაციის საშუალებით გაკონტროლება ინტერნეტით Nodemcu გამოყენებით: გამარჯობა ყველას დღეს ჩვენ გაჩვენებთ თუ როგორ შეგიძლიათ აკონტროლოთ LED სმარტფონის გამოყენებით ინტერნეტში
სახლის ავტომატიზაცია: ავტომატური გადართვის დაფა Dimmer კონტროლით Bluetooth– ის საშუალებით Tiva TM4C123G– ის გამოყენებით: 7 ნაბიჯი
![სახლის ავტომატიზაცია: ავტომატური გადართვის დაფა Dimmer კონტროლით Bluetooth– ის საშუალებით Tiva TM4C123G– ის გამოყენებით: 7 ნაბიჯი სახლის ავტომატიზაცია: ავტომატური გადართვის დაფა Dimmer კონტროლით Bluetooth– ის საშუალებით Tiva TM4C123G– ის გამოყენებით: 7 ნაბიჯი](https://i.howwhatproduce.com/images/001/image-1704-36-j.webp)
სახლის ავტომატიზაცია: ავტომატური გადართვის დაფა Dimmer კონტროლით Bluetooth– ის გამოყენებით Tiva TM4C123G: დღესდღეობით, ჩვენ გვაქვს დისტანციური მართვის საშუალებები ჩვენი ტელევიზორებისთვის და სხვა ელექტრონული სისტემებისთვის, რამაც ჩვენი ცხოვრება მართლაც გაადვილა. ოდესმე გიფიქრიათ სახლის ავტომატიზაციაზე, რომელიც საშუალებას მისცემს გააკონტროლოს მილის შუქები, ვენტილატორები და სხვა ელექტრო მოწყობილობები
ნაბიჯი სერვო ძრავის სერიული კონტროლით არდუინოს საშუალებით 3D პრინტერის გამოყენებით - Pt4: 8 ნაბიჯი
![ნაბიჯი სერვო ძრავის სერიული კონტროლით არდუინოს საშუალებით 3D პრინტერის გამოყენებით - Pt4: 8 ნაბიჯი ნაბიჯი სერვო ძრავის სერიული კონტროლით არდუინოს საშუალებით 3D პრინტერის გამოყენებით - Pt4: 8 ნაბიჯი](https://i.howwhatproduce.com/images/002/image-3317-43-j.webp)
მოიცავს საფეხურზე მომუშავე ძრავას სერიული კონტროლით Arduino– ს გამოყენებით 3D პრინტერის გამოყენებით - Pt4: Motor Step სერიის ამ მეოთხე ვიდეოში ჩვენ გამოვიყენებთ იმას, რაც ადრე ვისწავლეთ სტეპერ სერვო ძრავის აგება სერიული კომუნიკაციისა და რეალური კონტროლის საშუალებით. პოზიციის უკუკავშირი რეზისტენტული კოდირების გამოყენებით, რომელსაც აკონტროლებს არდუინო