Բովանդակություն:

Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով. 33 քայլ
Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով. 33 քայլ

Video: Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով. 33 քայլ

Video: Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով. 33 քայլ
Video: #Անվճար ակնային զննում շաքարային #դիաբետ ունեցողների համար - #Առողջնախագիծ 2024, Նոյեմբեր
Anonim
Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով
Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով
Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով
Դիաբետիկ ռետինոպաթիայի ավտոմատ ախտորոշում MATLAB- ի միջոցով

(Տես վերևի ծածկագիրը)

Դիաբետիկ ռետինոպաթիան շաքարային դիաբետի հետ կապված աչքի հիվանդություն է, որն առաջանում է արյան մեջ շաքարի բարձր մակարդակի պատճառով: Արյան մեջ շաքարի բարձր մակարդակը առաջացնում է ցանցաթաղանթների անոթների ուռչում, ինչը հանգեցնում է խոշորացված անոթների և նույնիսկ անոթների արտահոսքի, ինչը հանգեցնում է ցանցաթաղանթի պատկերների մուգ բծերի: Այս ծածկագրով մենք նպատակ ունենք արյան անոթների արտահոսքի բծերի տեսքը օգտագործել որպես ֆոնային դիաբետիկ ռետինոպաթիայի ցուցանիշ, չնայած իրական աշխարհում կպահանջվեն ախտորոշման հետագա տեխնիկա: Այս ծածկագրի նպատակն է ավտոմատացնել պատկերի մշակումը և ցանցաթաղանթի պատկերների ախտորոշումը `պարզելու շագանակագեղձի ռետինոպաթիայի նշանները, որոնք ցուցադրվում են ցանցաթաղանթի պատկերների մուգ բծերի միջոցով:

10 նորմալ ցանցաթաղանթ և 10 ախտորոշված ցանցաթաղանթ պատկերներ մշակվեցին մի ծածկագրի միջոցով, որը նախ կարդում և զտում է պատկերները, այնուհետև քանակականացնում մուգ բծերը `որոշելու համար, թե արդյոք առկա են շաքարային ռետինոպաթիայի ախտանիշներ` ելնելով տվյալ շեմից: Արդյունքներն այնուհետև տպվում են հրամանի պատուհանի վրա ՝ դիտողի մեկնաբանման համար:

Քայլ 1: Նախադրյալներ

Նախադրյալներ
Նախադրյալներ

1. Համոզվեք, որ MATLAB ծրագիրը ներբեռնված է ձեր համակարգչում:

2. Ներբեռնեք txt ֆայլը, որը գտնված է հղման մեջ: (Սեղմեք «ctrl+s» ՝ MATLAB ծածկագրի նույն գրացուցակում պահելու համար)

Քայլ 2: Նախադրյալներ (չեն)

Նախադրյալներ (չեն)
Նախադրյալներ (չեն)
Նախադրյալներ (չեն)
Նախադրյալներ (չեն)

4. Բացեք MATLAB- ը և հրամանի պատուհանում մուտքագրեք «uiimport»:

5. Ընտրեք officialdiagnoses.txt ֆայլը և ներմուծեք այն MATLAB որպես բջջային մատրիցա:

6. Համոզվեք, որ «պաշտոնական ախտորոշումները» տեսնում եք որպես փոփոխական աշխատանքային տարածքում:

Քայլ 3: Նախադրյալներ (չեն)

Նախադրյալներ (չեն)
Նախադրյալներ (չեն)

7. Ներբեռնեք ModWald.m գործառույթը, որը կարող է ստանալ վերը նշված կոդից կամ ներբեռնել այն Կտավից:

(Ծածկագիրը տրամադրվել է պրոֆեսոր Քինգի և պրոֆեսոր Չոյի կողմից)

Քայլ 4: Նախադրյալներ (չեն)

Նախադրյալներ (չեն)
Նախադրյալներ (չեն)

8. Ներբեռնեք 400 հում պատկեր ՝ «STARE» նախագծի տվյալների բաժնից:

Քայլ 5. Մաքրել Matlab- ը ՝ պատրաստվելու գործարկման կոդին

Մաքրել Matlab- ը ՝ պատրաստվելու գործարկման կոդին
Մաքրել Matlab- ը ՝ պատրաստվելու գործարկման կոդին

Ավելացնել կոդին ՝

1. փակել բոլորը (փակում է նախկինում բացված բոլոր պատկերները)

2. clearvars - բացառությամբ պաշտոնական ախտորոշումների (Մաքրում է բոլոր փոփոխականները, բացառությամբ նախկինում ներմուծված txt ֆայլերի պաշտոնական ախտորոշումների)

3. cclc (մաքրում է հրամանի պատուհանը)

Քայլ 6. Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով

Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով
Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով
Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով
Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով

1. Վերցրեք ախտորոշման տեքստային ֆայլը և հանեք պատկերի անունները: Այս անունները պարունակվում են տեքստային ֆայլի առաջին սյունակում, այնպես որ դրանք հանելու համար մուտքագրեք «պաշտոնական ախտորոշումներ (:, 1)»: Պատկերների անունների մատրիցան վերագրված էր փոփոխականին ՝ «all_image_numbers»

2. Փոխակերպել all_image_numbers փոփոխականը բջջային զանգվածից մատրիցային զանգված օգտագործելով cell2mat գործառույթը

Քայլ 7: Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով (միացեք)

Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով (միացեք)
Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով (միացեք)
Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով (միացեք)
Ընտրեք 10 նորմալ աչքի պատկեր և 10 պատկեր դիաբետիկ ռետինոպաթիայի ախտանիշներով (միացեք)

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 -ի

Ստեղծեք այս փոփոխականները for loop- ից առաջ ՝ օղակի թվերը նախաստորագրելու համար:

Քայլ 9. Ստեղծեք օղակ `նորմալ պատկերներ ինքնաբերաբար վերբեռնելու համար

Ստեղծեք օղակ `նորմալ պատկերներ ինքնաբերաբար վերբեռնելու համար
Ստեղծեք օղակ `նորմալ պատկերներ ինքնաբերաբար վերբեռնելու համար

1. Ստեղծեք for loop

2. Հաշվարկի փոփոխականը (i, այս դեպքում) սահմանեք 1-10 արժեքների մատրիցայի վրա: Հաշվարկի այս փոփոխականը կօգտագործվի յուրաքանչյուր պատկեր առանձին կանչելու համար

3. Վերցրեք i տարրը պատկերների մատրիցում ՝ num2str գործառույթի միջոցով պատկերի տողը տողից հանելու և փոխարկելու համար:

Գտեք պատկերի անվան մեջ առկա թվանշանների թիվը ՝ օգտագործելով թվային գործառույթը: Նշանակեք այս արժեքը փոփոխականին ՝ digit_normal: Այս թիվը պետք է լինի 1 -նիշ թվերի համար 1, երկնիշ թվերի համար 2 և եռանիշ թվերի համար `3: Այս տեղեկատվությունը կօգտագործվի պատկերներ ինքնաբերաբար կանչելու համար:

Քայլ 10: Ստեղծեք օղակ `նորմալ պատկերներ ինքնաբերաբար վերբեռնելու համար (con't)

Ստեղծեք օղակ `նորմալ պատկերներ ինքնաբերաբար վերբեռնելու համար (միացեք)
Ստեղծեք օղակ `նորմալ պատկերներ ինքնաբերաբար վերբեռնելու համար (միացեք)

3. Ստեղծեք if հայտարարություն, որը պարունակում է նախորդ քայլերի բոլոր երեք հնարավորությունները: Եթե պատկերի անունն ունի 1 նիշ, ապա պատկերը կկոչվի որպես «im000», եթե այն ունի 2 թվանշան, պատկերը կկոչվի որպես «im00», իսկ եթե այն ունի 3, ապա պատկերը կկոչվի որպես «im0»:

4. Յուրաքանչյուր if հայտարարության ներքո նշանակեք փոփոխական ՝ imread «im» - ին համապատասխան, եթե համապատասխան թվով զրոներ (ինչպես նկարագրված է վերևում), որին հաջորդում է i- ն:

Քայլ 11: Կտրեք պատկերի սահմանները

Կտրեք պատկերի սահմանները
Կտրեք պատկերի սահմանները

Վերցրեք սկզբնական պատկերը և կիրառեք իմկրոպլտր ՝ սև եզրերը վերացնելու և I_crop փոփոխականին նշանակելու համար: Բերքի ուղղանկյունը նշվում է մատրիցի միջոցով [95, 95, 500, 410]:

Քայլ 12: Ստեղծեք մոխրագույն մասշտաբի պատկեր

Ստեղծեք մոխրագույն մասշտաբի պատկեր
Ստեղծեք մոխրագույն մասշտաբի պատկեր

Վերցրեք կտրված պատկերը և կիրառեք rbg2gray զտիչը ՝ պատկերը մոխրագույն չափի փոխելու համար: Այս պատկերը նշանակեք I2 փոփոխականին:

Քայլ 13: Ստեղծեք հակապատկեր պատկեր

Ստեղծեք հակապատկեր պատկեր
Ստեղծեք հակապատկեր պատկեր

Վերցրեք I2 պատկերը և օգտագործեք imadjust- ը ՝ ուժգնության արժեքները վերավաճառելու համար:

Վերցրեք արժեքներ, որոնք ընկած են [0.2, 0.7] միջակայքում և դրանք վերավաճառեք մինչև [0, 1]: Գամման սահմանվել է 0.8 ՝ պատկերը ավելի պայծառ դարձնելու համար: Նոր պատկերը հանձնարարեք I_adjusted- ին:

Քայլ 14: Բարելավեք հակապատկերային պատկերը

Բարելավեք հակադրության պատկերը
Բարելավեք հակադրության պատկերը

Վերցրեք I_ ճշգրտված պատկերը և օգտագործեք adapthisteq գործառույթը ՝ հակադրությունը բարձրացնելու համար:

Adapthisteq շարահյուսությունը պահանջում է պատկերի անվանումը, I_adjusted, ‘numTiles’, numTiles- ի չափը, ‘nBins’ և աղբարկղերի թիվը: NumTiles- ի չափը սահմանվում է [8 8] ՝ պատկերը բաժանելով 8x8 սալիկների և աղբարկղերի թիվը `28: Պատկերը նշանակեք I_constrast- ին:

Քայլ 15: Ստեղծեք միջին զտիչ

Ստեղծեք միջին զտիչ
Ստեղծեք միջին զտիչ

Ստեղծեք «meanfilt» անունով փոփոխական ՝ օգտագործելով fspecial գործառույթը: Մուտքագրեք «միջին գործառույթ» ՝ միջինացված զտիչ ստեղծելու և լոգարիթմական պատուհանի չափի համար տեղադրեք [90 90]:

Քայլ 16. Համակցեք միջինացված ֆիլտրը հակապատկեր պատկերի հետ

Համակցեք միջինացված ֆիլտրը հակապատկեր պատկերի հետ
Համակցեք միջինացված ֆիլտրը հակապատկեր պատկերի հետ

Ստեղծեք mask_mean անունով նոր փոփոխական և օգտագործեք imfilter գործառույթը ՝ I_contrast պատկերը վերցնելու և նախկինում ստեղծված միջին զտիչը կիրառելու համար:

Քայլ 17. Պատրաստեք նոր միջին դիմակ ՝ հանելով պիքսելները

Պատրաստեք նոր միջին դիմակ ՝ հանելով պիքսելները
Պատրաստեք նոր միջին դիմակ ՝ հանելով պիքսելները

Ստեղծեք mask_mean2 անունով փոփոխական և օգտագործեք imsubtract գործառույթը, որպեսզի յուրաքանչյուր պիքսելի արժեքը I_contrast- ում հանեք mask_mean- ի համապատասխան պիքսելից:

Քայլ 18. Ստեղծեք երկուական զտված պատկեր

Ստեղծեք երկուական զտված պատկեր
Ստեղծեք երկուական զտված պատկեր

Մոխրագույն գույնի պատկերները սև ու սպիտակ դարձնել ՝ օգտագործելով իմբինարիզացիա: Մուտքային դիմակ_ միջոց 2, «հարմարվողական», «նախնական բևեռականություն», «մութ», «զգայունություն», 0.6: Նշանակեք այս նոր պատկերը ՝ mask_binarize:

Քայլ 19. Հեռացրեք զտված պատկերներում հայտնաբերված փոքր բշտիկները

Հեռացրեք զտված պատկերներում հայտնաբերված փոքր բշտիկները
Հեռացրեք զտված պատկերներում հայտնաբերված փոքր բշտիկները

Mask_binarize- ի վրա bwareaopen գործառույթի միջոցով հեռացրեք 100 պիքսելից պակաս կապ ունեցող օբյեկտները և սահմանեք շեմը 100 -ի: Փոփոխականին նշանակեք bw:

Քայլ 20. Ստեղծեք սկավառակի կառուցվածքային տարր

Ստեղծեք սկավառակի կառուցվածքային տարր
Ստեղծեք սկավառակի կառուցվածքային տարր

Ստեղծեք սկավառակի կառուցվածքային տարր (2 շառավղով) ՝ օգտագործելով strel գործառույթը: Հանձնարարեք այն se.

Քայլ 21. Կատարեք մորֆոլոգիական փակ գործողություններ

Կատարել մորֆոլոգիական փակ գործողություններ
Կատարել մորֆոլոգիական փակ գործողություններ

Վերցրեք bw և կիրառեք imclose գործառույթը կառուցվածքային տարրի վրա ՝ օբյեկտի վրա ձևաբանական սերտ գործողություն կատարելու համար:

Քայլ 22. Գտեք առնվազն 8 -ի միացման օբյեկտները

Գտեք առնվազն 8 -ի միացման օբյեկտները
Գտեք առնվազն 8 -ի միացման օբյեկտները

Վերցրեք bw և օգտագործեք bwconncomp ՝ պատկերում գտնելով առնվազն 8 -ի միակցելիություն ունեցող օբյեկտներ: Թվերի ելքը նշանակեք cc_1- ին:

Քայլ 23. Գտեք միացված պիքսելների առավելագույն թիվը

Գտեք միացված պիքսելների առավելագույն թիվը
Գտեք միացված պիքսելների առավելագույն թիվը
Գտեք միացված պիքսելների առավելագույն թիվը
Գտեք միացված պիքսելների առավելագույն թիվը

Օգտագործեք բջջային զվարճանքի գործառույթը ՝ «թվանշան» գործառույթը կատարելու համար ՍԴ յուրաքանչյուր բջիջ: Սա գտնում է PixelIdxList բջիջի տարրերի քանակը: Արժեք նշանակեք «numPixels» - ին:

Գտեք numPIxels- ի առավելագույն արժեքները: Ամենամեծ առավելագույնը նշանակեք «ամենամեծին», իսկ առավելագույն արժեքի ինդեքսը ՝ «idx» -ին:

Քայլ 24. Սահմանեք պիքսելների առավելագույն արժեքները 0 և գտեք պիքսելներ> = 26 պիքսելային կապով

Հեռացրեք արյան անոթները պատկերով
Հեռացրեք արյան անոթները պատկերով

= 26 Pixel Connectivity "src =" https://content.instructables.com/ORIG/FXY/DTW3/JEOIIEL4/FXYDTW3JEOIIEL4-p.webp

Նկար.ուցադրել
Նկար.ուցադրել

= 26 Pixel Connectivity "src =" https://content.instructables.com/ORIG/FXO/GBX1/JEOIIELB/FXOGBX1JEOIIELB-p.webp

Հեռացրեք անոթները և հաշվեք արյան բշտիկները
Հեռացրեք անոթները և հաշվեք արյան բշտիկները

= 26 Pixel Connectivity "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Ախտորոշեք ցանցաթաղանթի պատկերը `որոշված արյան խցանումների քանակի հիման վրա
Ախտորոշեք ցանցաթաղանթի պատկերը `որոշված արյան խցանումների քանակի հիման վրա

= 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. Նկարի ցուցադրում

Displayուցադրել յուրաքանչյուր զտված պատկեր ենթածրագրում: Ցուցադրել «սահման» և «ամուր» մուտքերով, ցուցադրում է յուրաքանչյուր պատկերի ենթածրագրի կառուցվածքում: Յուրաքանչյուր պատկերին ավելացրեք վերնագիր `տարբերելու համար, թե որ ֆիլտրն է օգտագործվել:

Քայլ 27. Հեռացրեք անոթները և հաշվեք արյան բշտիկները

1. Վերցրեք «RemoveVessels» - ը և կիրառեք «Centroid» գործառույթը տարածաշրջանային ծրագրերում ՝ պատկերում պատկերված օբյեկտների կենտրոնախույսերը բացահայտելու համար: Այս առարկաները պետք է համապատասխանեն պատկերում առկա արյան խցանումներին:

2. Հաշվեք արյան թրոմբների քանակը, որոնք հայտնաբերվել են կենտրոնական մատրիցի երկարությունը վերցնելով:

Քայլ 28. Աչքի ցանցաթաղանթի պատկերի ախտորոշում ՝ որոշված արյան թրոմբների քանակի հիման վրա

Օգտագործեք եթե հայտարարությունները `պատկերը ախտորոշելու համար` հիմնված հայտնաբերված արյան խցանումների քանակի վրա:

Եթե հայտնաբերված ցենտրոիդների թիվը փոքր էր կամ հավասար էր 5 -ի, ապա պատկերը նույնականացվեց որպես նորմալ:

Եթե ցենտրոիդների թիվը 5 -ից մեծ էր, պատկերի մոտ ախտորոշվում էր դիաբետիկ ռետինոպաթիա:

Արդյունքը տպվում է հրամանի պատուհանի վրա ՝ օգտագործելով fprintf:

Քայլ 29. Եթե կա ավելի քան 5 բշտիկ…

Եթե կա ավելի քան 5 գնդիկ…
Եթե կա ավելի քան 5 գնդիկ…

Կրկնեք վերը նշված հրահանգները ախտորոշված պատկերների համար ՝ որպես այլ հայտարարություն: Այս հատվածը կգործի, եթե բլբաների թիվը 5 -ից մեծ լինի:

Ավարտեք if հայտարարությունը:

Քայլ 30. Կրկնեք ֆիլտրման գործընթացը նորմալ պատկերների համար ՝ պատկերի թվանշանային արժեքներով ՝ 2 և 3

Կրկնեք նորմալ պատկերների համար զտման գործընթացը ՝ 2 -րդ և 3 -րդ պատկերներով
Կրկնեք նորմալ պատկերների համար զտման գործընթացը ՝ 2 -րդ և 3 -րդ պատկերներով
Կրկնեք նորմալ պատկերների համար զտման գործընթացը ՝ 2 -րդ և 3 -րդ պատկերներով
Կրկնեք նորմալ պատկերների համար զտման գործընթացը ՝ 2 -րդ և 3 -րդ պատկերներով

Կրկնեք գործընթացը բնօրինակի մնացորդի համար, եթե numel- ի դեպքում (երբ պատկերի թվանշանի թվանշանները) հավասար է 2 -ի և 3 -ի: Սա լրացնում է նորմալ պատկերների for loop- ը:

Վերջացրեք for loop- ը:

Քայլ 31. Կրկնեք ախտորոշված պատկերների ամբողջ գործընթացը

Ախտորոշված պատկերների համար կրկնել ամբողջ գործընթացը
Ախտորոշված պատկերների համար կրկնել ամբողջ գործընթացը

Կրկնեք ամբողջ գործընթացը ՝ օգտագործելով «թվեր_է_քաղվածք_ ախտորոշված» մատրիցով թվարկված ախտորոշված պատկերները:

Համոզվեք, որ անցեք յուրաքանչյուր գործիչ (i) և փոխեք այն գործչի (i+10), որպեսզի ախտորոշված թվերը հայտնվեն որպես պատկերներ 11 -ից 20 -ը:

Քայլ 32. Վիճակագրական վերլուծություն

Վիճակագրական վերլուծություն
Վիճակագրական վերլուծություն

1. 'Actual_Diagnosis_Matrix' օգտագործվում է արդյունքները համեմատելու համար txt ֆայլում հայտնաբերված պաշտոնական ախտորոշման հետ: Առաջին 10 զրոները նշում են, որ առաջին 10 պատկերները պետք է լինեն նորմալ: Վերջին 10 -ը ցույց են տալիս, որ վերջին 10 պատկերները պետք է դասակարգվեն որպես դիաբետիկ ռետինոպաթիա:

2. Կրկնակի հավասար նշանը, որն օգտագործվում է «number_crect» ստեղծելու համար, ստեղծում է տրամաբանական զանգված ՝ համեմատելով «Actual_Diagnosis_Matrix» - ի համապատասխան տարրերի արժեքը for- ի օղակից ստեղծված «Diagnosis_Matrix» - ի հետ:

Ախտորոշմանը համապատասխանող յուրաքանչյուր տարրի համար կավելացվի 1, ինչը նշանակում է, որ ծածկագիրը ճիշտ է ախտորոշել այդ պատկերը: Եթե դա սխալ է, այն մատրիցային կավելացնի 0:

Հետո, վերցնելով դրա գումարը, գումարվում է բոլոր մեկը: Այլ կերպ ասած, այն գտնում է ճիշտ ախտորոշված պատկերների գումարը:

3. «Վերջնական_ տոկոսային_ճիշտ» -ը հաշվարկված տոկոսն է, թե որքանով է ճշգրիտ ծածկագիրը ախտորոշել դիաբետիկ ռետինոպաթիա: Diagnosedիշտ ախտորոշված պատկերների թիվը բաժանվում է 20 -ի (նկարների ընդհանուր թիվը) և բազմապատկվում 100 -ով `հաջողված ախտորոշումների տոկոսը գտնելու համար:

Քայլ 33: Գտեք վստահության միջակայք

Վստահության միջակայք գտնելը
Վստահության միջակայք գտնելը

1. Համոզվեք, որ ներբեռնել եք ModWald.m- ը ՝ այն որպես գործառույթ կանչելու համար: Առանց գործառույթի, դուք ինքներդ պետք է հաշվեք վստահության միջակայքը ՝ օգտագործելով փոփոխված Wald մեթոդը:

2. ModWald գործառույթն ունի 2 մուտք, որտեղ առաջինը ճիշտ որոշված պատկերների թիվն է, իսկ երկրորդը `պատկերների ընդհանուր քանակը:

3. ModWald գործառույթը դուրս կբերի համամասնությունների վստահության միջակայքի ստորին և վերին սահմանները `ընտրանքային տվյալների ճշգրտության համար: Այլ կերպ ասած, դա ձեզ կտա տոկոսների ընդմիջում, որտեղ ծածկագրի ճշգրտության իրական տոկոսը կլինի:

4. Օգտագործեք ստորև բերված fprintf- ը ՝ վիճակագրությունը և վստահության միջակայքը հրամանի պատուհանում մուտքագրելու համար:

> fprintf ('ցանցաթաղանթի պատկերների 0%տոկոսը ճիշտ ախտորոշվել է ըստ պաշտոնական ախտորոշման: / n / n', Final_percentage_correct)

> fprintf («percentageշմարիտ տոկոսադրույքը, որով մեր ծածկագիրը ճիշտ ախտորոշելու է դիաբետիկ ռետինոպաթիան, / n կընկնի [%.3f, %.3f] միջակայքում, 20 նմուշառված պատկերի հիման վրա / n ', ստորին_կապված, վերին_կապված)

Խորհուրդ ենք տալիս: