
Բովանդակություն:
- Քայլ 1: Օգտագործելով ուղեղի տուփը
- Քայլ 2. Ներածություն. Խաչաձեւ հատվածների վերլուծություն
- Քայլ 3: Գործառույթ ստեղծելը ՝ LevelCurveTracings.m
- Քայլ 4. Սահմանափակված ալգորիթմի մշակում. Սահմաններ գտնելը
- Քայլ 5. Կապված ալգորիթմի մշակում. Արտաքին կապի զանգվածի ստեղծում
- Քայլ 6. Սահմանված ալգորիթմի մշակում. Կենտրոնի հետ աշխատելը
- Քայլ 7. Կապված ալգորիթմի մշակում. Երբ կենտրոնախախտը կենտրոնացած չէ
- Քայլ 8. Կապված ալգորիթմի մշակում. Անցքերի միջամտություն
- Քայլ 9. Կապված ալգորիթմի մշակում. Փոսերի տեղադրում, ուղեղի և անցքերի սահմանների վերջնականացում
- Քայլ 10. Տվյալների մուտքագրում. Գործառույթ PatientFiles.m
- Քայլ 11: Տվյալների մուտքագրում ֆայլերի մեջ
- Քայլ 12: Տվյալների մուտքագրում. Rainամանակի ընթացքում ուղեղի ծավալների ցուցադրում
- Քայլ 13. Ենթածրագրերի բացերի փակումը. Subplotclose.m
- Քայլ 14: Հիմնական ծածկագիրը. Բոլորը ջնջելը և մուտքերի արագացումը
- Քայլ 15: Հիմնական ծածկագիր. Պատկերի խմբաքանակ
- Քայլ 16. Հիմնական ծածկագիրը
- Քայլ 17. Հիմնական ծածկագիրը. Սահմանների սահմանում
- Քայլ 18. Հիմնական ծածկագիրը. Zիշտ Z չափման որոշում
- Քայլ 19. Հիմնական ծածկագիրը. X և Y կոորդինատների որոշում
- Քայլ 20. Հիմնական ծածկագիր. Եռաչափ կառուցվածքի գծագրում, Volավալի որոնում և տվյալների մուտքագրում
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Ավելի երկար մարդկային կյանքի սահմանը առաջ է բերել հիվանդությունների աճ, որոնք մեզանից առաջ չեն տեսել քաղաքակրթություններին: Դրանցից է, որ Ալցհեյմերի հիվանդությունը ազդել է մոտ 5.3 միլիոն կենդանի տարեց ամերիկացիների վրա 2017 թվականին, կամ մոտավորապես յուրաքանչյուր 10 տարեց ամերիկացիներից մեկը (https://www.alz.org/facts/) և անհամար այլոց դեմենսիայով: Որպեսզի օգնենք հասկանալ, թե ինչ է տառապում մեր մեծերը, այս ծածկագիրը ապագա հետազոտողներին և հետաքրքրասեր ցանկացողներին կհամալրի ժամանակի ընթացքում ուղեղի ծավալը հետևելու ունակությամբ:
Քայլ 1: Օգտագործելով ուղեղի տուփը

Ուղեղի տուփ օգտագործելու համար անհրաժեշտ է միայն հետևյալը.
- Ուղեղի ՄՌՏ սկանավորում և նման ֆայլերի անուն և ձևաչափ (բոլորը պետք է ունենան մոտավորապես նույն չափերը)
- Մեկ սկանավորման երկարություն
- Յուրաքանչյուր շերտի միջև հեռավորությունը (MRI սկան)
- Հիվանդի անունը (մուտքագրելիս մի՛ ընդգրկեք բացատներ և խնդրում ենք մեծատառով նշել անունը և ազգանունը, օրինակ ՝ FirstnameLastname)
Եվ այստեղից կարելի է հետևել անհատի ուղեղի ծավալների միտումների վրա ժամանակի ընթացքում: Այսպիսով, Ալցհեյմերի միտումների թվերին կարելի է հետևել այս ծրագրաշարի միջոցով: Փորձարկման ժամանակ օգտագործված երկարությունը 180 մմ էր `մեկ սկանավորման երկարության համար և 5 մմ` ՄՌՏ սկաների միջև հեռավորության համար `միջին թվերի հիման վրա:
Այնուամենայնիվ, ուղեղի տուփի կիրառումը չպետք է սահմանափակվի այս մեկ առաջադրանքով: Եթե տվյալ պինդ մարմնի խաչմերուկները լուսանկարված են, ինչպես ուռուցքն ինքնին, ապա դրանց ծավալի փոփոխությունների միտումները կարելի է հետևել նաև ծրագրակազմում:
Քայլ 2. Ներածություն. Խաչաձեւ հատվածների վերլուծություն

Եռաչափ կառույցներում երկու ծավալային հարթությունները, որոնցից բաղկացած են, կկոչվեն խաչմերուկ: Պատկերացրեք, որ թղթի կույտը կազմում է ուղղանկյուն պրիզմա, ապա թղթի յուրաքանչյուր կտոր կլինի թղթի խաչմերուկ: Ուղեղը պատկերացնելիս մենք կիրառում ենք նույն մտքի ընթացքը: MRI (մագնիսա -ռեզոնանսային տոմոգրաֆիա) (տե՛ս MRI- ի մասին տեղեկատվությունը) գրավում է ուղեղի խաչմերուկները, և ուղեղի յուրաքանչյուր «շերտում» սահմանված սահմանների օգտագործումից մենք կարող ենք կառուցել կառուցվածք ՝ մոդելավորելու և գտնելու ուղեղի ծավալը:. Մենք նախ պետք է կառուցենք այնպիսի գործառույթ, որը տեղեկատվություն տրամադրի նման սահմանների վրա:
Քայլ 3: Գործառույթ ստեղծելը ՝ LevelCurveTracings.m




Նախ, համոզվեք, որ ձեր համակարգիչը ներբեռնել է MATLAB_R2017b (ներբեռնեք այստեղ) և բացեք MATLAB- ը: MATLAB ինտերֆեյսում կտտացրեք պատուհանի վերին ձախ անկյունում գտնվող կոճակին, որի վրա գրված է «Նոր» ՝ համարձակ դեղին գումարած նշանով և ընտրեք «գործառույթ» տարբերակը ՝ խմբագրի պատուհանում բացելով բացատ, որը նման է դրան երրորդ նկարը: Մենք կենտրոնանալու ենք գործառույթը կարգավորելու համար առաջին գիծը փոխելու վրա: Այնտեղ, որտեղ գրված է «outputArg1», փոխարինեք «ուղեղով», «outputArg2» - ով ՝ «անցքեր», «untitled2» - ից «exp2», և «inputArg1» ՝ «պատկերին», և ջնջեք «inputArg2»: Այժմ դուք ունեք գործառույթ, որը պետք է կոչվի ՝ օգտագործելով «exp2» ՝ մեկ փաստարկ վերցնելով «պատկեր» և դուրս բերելով «ուղեղի» և «անցքերի» սահմանները: Ֆունկցիայի առաջին տողը պետք է նմանվի չորրորդ նկարում պատկերված տողին: Այս սկզբնական տողից ներքև ջնջեք բոլոր ծածկագրերը:
Քայլ 4. Սահմանափակված ալգորիթմի մշակում. Սահմաններ գտնելը

Մուտքագրեք ծածկագիրը հետևյալ տողում. Ֆունկցիայի այս հատվածը կատարում է հետևյալ տող առ տող.
- Տեղադրեք «պատկեր» պատկերում «mri» փոփոխականի մեջ:
- «Mri» - ն վերածեք պատկերի ՝ կազմված մի շարք թվերից մինչև մեկ և զրոներ (նույնականացվում է երկուականացում) ՝ հիմնված սահմանված շեմի արժեքի վրա: Եթե պիքսելում արժեքը հավասար է կամ գերազանցում է 0.1 -ը, ապա այն սահմանվում է մեկի վրա, եթե ոչ, ապա այդ պիքսելի արժեքը զրո է:
- Հետևյալ չորս տողերը 10 սյունակ և տող են դարձնում ՄՌՏ սկան շերտի եզրերին զրոյի ՝ խուսափելու համար ոչ սահմանային արժեքներ կարդալուց (ինչպես սովորել են ծածկագրով փորձարկելուց):
- Վերջնական տողում bwboundaries- ը հետևում է «mri» երկակի պատկերների սահմաններին և այն հավասարեցնում է «b» - ին, զանգված `այն տարրերով, որոնց ցուցանիշները համապատասխանում են մեկի սահմանած ցուցանիշներին:
Քայլ 5. Կապված ալգորիթմի մշակում. Արտաքին կապի զանգվածի ստեղծում

Հետևեք խմբագրի պատուհանում ՝ նկարի հետևյալ ծածկագրով: Կոդի այս հատվածը կատարում է հետևյալ տող առ տող.
- Գտեք երկուականացված «բ» պատկերի տողերից յուրաքանչյուրի երկարությունը (բջջային զվարճանքը գործառույթի երկարությունը կիրառում է յուրաքանչյուր տողի վրա):
- Սահմանեք «loc» ՝ առավելագույն երկարությունները պահելու համար:
- Գտեք առավելագույն երկարության ինդեքսը, որը տեղադրված է պահելու «ամենամեծ ճանապարհին»:
- Գտեք «mri» պատկերի չափը, որը բաղկացած է «b» - ի նույն չափից և սահմանեք «BWsize»:
- Գտեք պատկերի զանգվածի տողերի քանակը, որը սահմանվել է «ysize»:
- Գտեք պատկերի զանգվածի սյունակների քանակը, որը սահմանվել է «xsize»:
- Ստեղծեք զանգված «ամենամեծTraceMat», «ysize» «xsize» զրոյական մատրիցով:
- Գտեք համարժեք ինդեքսը բաժանորդագրված արժեքներից, որը համապատասխանում է այնտեղ, որտեղ եղել են ամենամեծ Trace x և y արժեքները, պահեք վիդեո «lindex» - ում:
- Largestրոյների մատրիցում ՝ «largeTraceMat», «lindex» - ում որպես տարրեր պահվող ինդեքսների տարրերին համապատասխանող տարրերը վերածեք միավորների:
Այսպիսով, տրամաբանական զանգվածը «ամենամեծTraceMat» ունի ուղեղի սկանավորման խաչմերուկի տվյալ հատվածի ամենամեծ սահմանագծված հատվածը, որը գծված է որպես զրոների ֆոն:
Քայլ 6. Սահմանված ալգորիթմի մշակում. Կենտրոնի հետ աշխատելը

Հաջորդը, մենք պետք է փորձարկենք `տեսնելու համար, թե արդյոք խաչմերուկը բաղկացած է մեկից ավելի տարածաշրջանից (ամենամեծը): Փորձարկելով ամենամեծ տարածաշրջանի կենտրոնախաղի դասավորվածությունը, մենք կարող ենք տեսնել, թե արդյոք կա մեկ հարակից շրջան, որը կտա ավելի կենտրոնացված կենտրոն, կամ մի քանի շրջանների հնարավորություն:
- Օգտագործեք «regionProps» ՝ ներկա centroids- ի մասին տեղեկատվություն գտնելու համար, որը հավասար է «tempStruct» կառուցվածքային զանգվածին
- Ձևի զանգված «centroids» ՝ «centroid» դաշտից տվյալները ուղղահայաց միացված
- Վերցրեք «սենտրոիդների» երկրորդ սյունակի արժեքները (հորիզոնական հարթության կոորդինատները)
- Գործարկեք զտիչ ՝ կենտրոնական կենտրոնի հորիզոնական կենտրոնի հավասարեցումը ստուգելու համար
Քայլ 7. Կապված ալգորիթմի մշակում. Երբ կենտրոնախախտը կենտրոնացած չէ

Այն սցենարով, որ ամենամեծ հետքի տարածաշրջանի կենտրոնամետը կենտրոնացված չէ, մենք անցնում ենք հետևյալ քայլերով: Ինչպես մենք նկատել էինք ՄՌՏ սքանավորումներում, միտումն այն էր, որ ուղեղի կիսագնդերը պատկերված լինեին խաչաձեւ հատվածում, երբ ոչ հարակից, ուստի այժմ շարունակում ենք գծել երկրորդ ամենամեծ հետքը `« ամենամեծTraceMat » - ի ամենամեծ հետքի հետ միասին:
- Հետագծված մատրիցը սահմանեք «b2» նոր փոփոխականի վրա
- Նախաձեռնել դատարկ «b2» մատրիցան ՝ «loc» - ով ինդեքսավորված հավաքածուով
- Ստեղծեք պայմանական պայման, երբ կենտրոնը կենտրոնացված չէ (այսինքն ՝ մի քանի շրջանի շերտ)
- Յուրաքանչյուր տողի համար գտեք հետքի նոր չափ (traceSize2)
- Սահմանեք «loc2» ՝ ինդեքսները գտնելու համար, որտեղ առկա են սահմաններ
- Թող «b2» - ում «loc2» - ով նշված բջիջները հավասար լինեն «ամենամեծ Trace2» - ին
- Բաժանորդագրությունները փոխակերպեք ինդեքսների ՝ սահմանելով «lindex»
- Փոփոխեք «lindex» - ին համապատասխան տարրերը «largeTraceMat» - ում 1 -ի
- Նախաձեռնել դատարկ «b2» մատրիցան ՝ «loc2» - ով ինդեքսավորված հավաքածուով
Քայլ 8. Կապված ալգորիթմի մշակում. Անցքերի միջամտություն

Փոսերի հետ առնչվելիս «b2» - ում պահված արժեքները հետևում էին այլ կառույցների, քան ամենամեծ հետքն են, և դրանք «խոշորագույն TraceMat» - ի լցված ձևի վրա գծելը ցույց կտա, թե որտեղ են ուղեղի շրջաններում անցքեր:
- Ստեղծեք զանգված «fillMat», որը լրացված է «ամենամեծTraceMat» տեսքով
- Ստեղծեք զանգված «interferenceMat», «ysize» ՝ «xsize» զրոյական զանգվածով
- Ստեղծեք «interferenceloc» զանգված, ուղղահայաց միացված «b2» - ից արժեքները պահելու համար
- Ստեղծեք «lindex» զանգված ՝ «interferceloc» - ին համապատասխանող ինդեքսները պահելու համար:
- «InterferenceMat» - ի «lindex» - ին համապատասխանող ինդեքսների համար արժեքը սահմանեք 1 ՝ կազմելով տարբեր սահմանափակված տարածք
Քայլ 9. Կապված ալգորիթմի մշակում. Փոսերի տեղադրում, ուղեղի և անցքերի սահմանների վերջնականացում

- Սահմանել «tempMat» զանգվածը «interferenceMat» - ին գումարած «fillMat» ՝ դրանով իսկ մատրիցայի յուրաքանչյուր արժեք ավելացնելով միմյանց
- Սահմանել «holeLoc» զանգվածը այն ցուցանիշներին հավասար, որտեղ «interferenceMat» և «fillMat» երկուսն էլ հավասար էին մեկին
- Տեղադրեք «holeMat» - ը որպես չափերի զրոյական մատրիցա «ysize» x «xsize»
- «HoleMat» - ում սահմանեք ինդեքսներ, որոնք հավասար են «holeLoc» - ին
- Սահմանել «ուղեղը» «ամենամեծTraceMat» - ի վրա
- Սահմանեք «անցքեր» -ը «holeMat» - ի վրա
Գտնելով, որտեղ ավելացված մատրիցների արժեքները հավասար էին 2 -ի, անցքերի տեղերը հեշտությամբ ապահովվեցին և գծագրվեցին դատարկ մատրիցի վրա:
Քայլ 10. Տվյալների մուտքագրում. Գործառույթ PatientFiles.m




Ինչպես և վերջին գործառույթի կարգավորումը, կտտացրեք պատուհանի վերին ձախ անկյունում գտնվող կոճակին, որի վրա գրված է «Նոր» ՝ համարձակ դեղին գումարած նշանով և ընտրեք «գործառույթ» տարբերակը ՝ խմբագրիչի պատուհանում բացելու համար բացվող տարածք: նման է երրորդ նկարի վրա: Առաջին տողում ջնջեք ելքային մատրիցան և փոխարինեք պարզապես «ելքով», «անվերնագիր 2» -ը փոխարինեք «pacientFiles» - ով, ջնջեք բոլոր մուտքային արգումենտները և փոխարենը հետևեք ծածկագրի տողի չորրորդ նկարում նշված ձևաչափմանը: Այս գործառույթի առաջին տողը պետք է համապատասխանի նկարի ձևաչափմանը:
Քայլ 11: Տվյալների մուտքագրում ֆայլերի մեջ


Հիմնական ֆունկցիայի կողմից հայտնաբերված տվյալները (դեռ նկարագրված չեն) գրանցելու համար ֆայլ ստեղծելու համար մենք պետք է հետևենք այս քայլերին (ինչպես նշված է ծածկագրով տող առ տող):
- Ստուգեք, արդյոք հիվանդի անվան մուտքը տող է:
- Եթե դա տող չէ, ցուցադրեք այդ հիվանդի անվան մուտքը պետք է լինի տող:
- Ավարտեք if հայտարարությունը (կանխեք սխալը):
- Ստեղծեք «DateandTime» տողային հայտարարություն, որը կտա հետևյալ ձևաչափը ՝ ժամ. Րոպե-ամիս/օր/տարի:
- Փոփոխական ֆայլի անվանումը սահմանեք հետևյալին ՝
Հիմա ֆունկցիայի հաջորդ բաժին. Արդյո՞ք այս անունով ֆայլ գոյություն ունի:
1) Ենթադրենք, որ այս անվան ֆայլն արդեն գոյություն ունի.
- Գործարկեք ֆայլը ՝ անցյալի արժեքները հերթագրելու համար
- Ավելացրեք ընթացիկ կրկնության «DateandTime» տվյալները ՝ որպես նոր բջիջ x արժեքների բջիջների զանգվածում (ինդեքսի վերջ+1)
- Ավելացրեք ընթացիկ «brainVolume» արժեքը որպես նոր բջիջ y արժեքների բջիջների զանգվածում (ինդեքսի վերջ+1)
- Պահպանեք ֆայլում բեռնված ընթացիկ փոփոխականները:
2) Ենթադրենք, որ այս անվան ֆայլը գոյություն չունի.
- Ստեղծեք նոր ֆայլ ՝ «pacientName» փոփոխականում պահված անունով
- Ավելացրեք ընթացիկ «DateandTime» տվյալները ՝ որպես բջիջ, x արժեքների դատարկ բջիջների զանգվածում
- Ավելացրեք ընթացիկ «brainVolume» տվյալները որպես բջիջ ՝ y արժեքների դատարկ բջիջների զանգվածում
- Պահպանեք ֆայլում բեռնված ընթացիկ փոփոխականները:
Քայլ 12: Տվյալների մուտքագրում. Rainամանակի ընթացքում ուղեղի ծավալների ցուցադրում

- Փոխարկեք x արժեքների զանգվածը (xVals) կատեգորիկ զանգվածի (xValsCategorical) ՝ գծապատկեր թույլ տալու համար
- Ստեղծեք գործչի պատուհան 5
- Պատկերացրեք «xValsCategorical» և «yVals» (ուղեղի ծավալը պարունակող) նշանակած կետերը ՝ օգտագործելով խոռոչի շրջանակներ ՝ կետերը նշելու և գծված գծերով միանալու համար:
- Սյուժեն վերնագրեք որպես ՝ հիվանդ Անուն ուղեղի ծավալի տվյալներ
- Պիտակավորեք x առանցքը, ինչպես ցույց է տրված նկարում
- Պիտակավորեք y առանցքը, ինչպես ցույց է տրված նկարում
- Թող նկար 5 -ը հավասար լինի ելքին
Այստեղից, կոչվում է հիվանդի անուն գործառույթը, որը կտա ֆայլ `խմբագրված տվյալներով` ժամանակի ընթացքում հետևելով ուղեղի ծավալի և միտումներ ցուցադրող սյուժեի:
Քայլ 13. Ենթածրագրերի բացերի փակումը. Subplotclose.m

Http://www.briandalessandro.com կոդից հարմարեցված գործառույթը գործում է հիմնական ծածկագրի ենթածրագրերի միջև եղած բացերը փակելու համար, երբ ստեղծվում են ՄՌՏ պատկերներ և ուղեղի շերտեր: Subplotclose.m- ում օգտագործվող ենթածրագրի գործառույթը կարգավորում է տվյալ ենթատիպերի դիրքը `միմյանց ավելի սերտորեն տեղավորելու համար` ավելի երկար հարթության տեսանկյունից: Օրինակ, եթե ծածկագիրը նախատեսում է 7 x 3 մատրիցա, տողերը սերտորեն կհամապատասխանեն, քանի որ տողի չափսն ավելի երկար է: Եթե ծածկագիրը նախատեսում է 3 x 7 մատրիցա, սյուները կհամապատասխանեն հարմարավետ ՝ տողերում բացթողումներով, ինչպես ցույց է տրված մեր հիմնական կոդի նկարներում:
Քայլ 14: Հիմնական ծածկագիրը. Բոլորը ջնջելը և մուտքերի արագացումը

Հիմնական ծածկագիրը սկսելու համար կտտացրեք նույն կոճակին, որը պատուհանի վերին ձախ անկյունում գրված է «Նոր» և ավելի վաղ բաժիններից «Գործառույթ» -ի փոխարեն ընտրել «Սցենար»: Մուտքագրեք կոդը, ինչպես ցույց է տրված նկարում, խմբագրի պատուհանում: Կոդի տողերը հերթականությամբ կատարում են հետևյալ առաջադրանքները.
- Փակել բոլոր բաց ֆայլերը, բացառությամբ 0, 1 և 2:
- Փակեք բոլոր պատկերների պատուհանները:
- Մաքրել աշխատանքային տարածքի բոլոր փոփոխականները:
- Մաքրել հրամանի պատուհանը:
- Displayուցադրել հրամանի պատուհանում. ՄՌՏ սկանավորման համար մուտքագրեք հետևյալ չափերը.
- Հրամանի պատուհանի նոր տողի վրա հարցրեք. Մեկ սկանավորման երկարությունը միլիմետրերով. Օգտագործողի կողմից տրված պատասխանը կկարգավորվի «lengthMM» փոփոխականի վրա:
- Նոր գծում հարցրեք. MRI սկանավորումների միջև հեռավորությունը միլիմետրերով. Օգտվողի կողմից տրված պատասխանը կկարգավորվի «ZStacks» փոփոխականի վրա:
Քայլ 15: Հիմնական ծածկագիր. Պատկերի խմբաքանակ


Այս բաժնում ծածկագիրը կբեռնի պատկերները (բաղկացած է ուղեղի խաչմերուկների ՄՌՏ սկանավորումներից) և կպահի յուրաքանչյուր պատկերի ֆայլի անունները «Հիմք» փոփոխականում և կցուցադրի ՄՌՏ սկաներից յուրաքանչյուրը: Խնդրում ենք հետևել նկարի կոդին, որը կատարում է հետևյալը.
- Ստեղծեք «BrainImages» կառուցվածքային զանգված, որը պարունակում է տեղեկատվություն ընթացիկ թղթապանակի բոլոր ֆայլերի վերաբերյալ, որոնք համապատասխանում են MRI _ () անվան ձևաչափին: png
- Սահմանել «NumberofImages» փոփոխականը, որը հավասար է «BrainImages» կառուցվածքային զանգվածի տարրերի թվին:
- Բացեք գործչի պատուհանը 1
- Ֆայլում հաշված պատկերների քանակի համար սահմանեք մի օղակ, որը պետք է շրջանցի
- Յուրաքանչյուր հանգույցի համար «CurrentImage» - ը յուրաքանչյուր ֆայլի համապատասխան անունն է MRI_i.png, որի կրկնության համարը «i» է
- Ստեղծեք 3 x 7 ենթահող ՝ ցուցադրելու համար 19 պատկերները «imshow» - ով
- Ենթածրագրի պատկերի պատուհանում յուրաքանչյուր պատկեր ցուցադրեք որպես այլ տարր
- Յուրաքանչյուր ենթածրագրի տարր վերնագրեք Level_, որտեղ դատարկ է for loop- ի կրկնության համարը:
- Ավարտեք for loop- ը (խուսափելով սխալից)
Սա 1 -ին պատուհանում կցուցադրի բոլոր ՄՌՏ սկաները հում տեսքով ՝ 3 x 7 կազմաձևով, առանց x կողմնորոշման բացերի:
Քայլ 16. Հիմնական ծածկագիրը

Լիցքավորմամբ մենք խուսափում ենք պատկերի չափերի փոքր անհամապատասխանությունների խնդրից, որոնք կարող են սխալների պատճառ դառնալ չափերի անհամապատասխանության դեպքում, եթե մի նկար մյուսից փոքր -ինչ մեծ է:
- Բացեք գործչի պատուհանը 2
- Տեղադրեք պատկերի մատրիցը MRI_1.png- ից «padBase» փոփոխականի մեջ
- Գտեք պատկերի մատրիցի չափը և սահմանեք «OriginalXPixels» (տողերի քանակի համար) և «OriginalYPixels» (սյունակների քանակի համար)
- Ստեղծեք «BrainMat» մատրիցը, որը բաղկացած կլինի բոլոր զրոներից ՝ ևս 20 տողերով և ևս 20 սյունակով յուրաքանչյուր հարթության համար, և 19 ընդհանուր խաչմերուկ ՝ մեկ մեկ հարթության համար:
- Ստեղծեք «HolesMat» ՝ զրոների նույն եռաչափ զանգվածից ՝ հետագայում անցքի կոորդինատները մուտքագրելու համար
- Ստեղծեք «zeroMat» ՝ պահոցի չափին գումարած քսան տող և քսան սյունակ, զրոների երկչափ զանգված:
Քայլ 17. Հիմնական ծածկագիրը. Սահմանների սահմանում


- Սահմանեք մի օղակ ՝ ավելի վաղ բեռնված յուրաքանչյուր պատկերի տվյալների միջոցով
- Ավելի վաղ խմբաքանակի մշակման նույն եղանակով «CurrentImage» - ը ֆայլեր է բեռնում «MRI_i.png» - ով, որտեղ i- ի կրկնության համարն է:
- Գործարկեք յուրաքանչյուր պատկեր ավելի վաղ պատրաստած «LevelCurveTracings2.m» գործառույթի միջոցով
- Գտեք «Ուղեղ» ելքի չափը, տողերի քանակը սահմանեք «Currentrow», իսկ սյունակների թիվը ՝ «Currentcolumns»:
- «CurrentMat» - ը սահմանեք զրոյների մատրիցայի վրա ՝ «Currentrow» - ի և «Currentcolumns» - ով նշված չափերով:
- Կենտրոնացրեք «Brain» - ի տվյալները «CurrentMat» - ում ՝ բոլոր տողերից 10 տողերի լուսանցքով
- Ստեղծեք 3 x 7 չափսերի ենթահող, պատկերների սահմանները ցուցադրելու համար
- Վերնագրի՛ր նկարի պատուհանի ենթածրագրի յուրաքանչյուր տարր
- Ստեղծեք «BrainMat» եռաչափ մատրիցա ՝ կազմված «CurrentMat» յուրաքանչյուր սահմանային շերտից
- Վերջացրեք for loop- ը (սխալներից խուսափելու համար)
Հետևյալ ենթաբաժինը լրացնում է առաջարկվող եռաչափ ձևի վերևում և ներքևում մնացած անցքերը
- Սահմանեք «LevelCurve1» - ը հավասար է «BrainMat» - ի առաջին շերտին (պինդ մասի ներքև)
- Սահմանեք «LevelCurveEnd» հավասար «BrainMat» - ի վերջին շերտին (պինդ մասի վերև)
- Վերաշարադրել «LevelCurve1» ՝ լրացված շերտով
- Վերաշարադրել «LevelCurveEnd» ՝ լրացված շերտով
- Լրացված շերտը սահմանեք որպես «BrainMat» - ի ստորին շերտ
- Լրացված շերտը սահմանեք որպես «BrainMat» - ի վերին շերտ
Քայլ 18. Հիմնական ծածկագիրը. Zիշտ Z չափման որոշում

Առաջին երեք տողերը բաղկացած են դատարկ «z» զանգվածի տեղադրումից և պարզ փոխակերպման գործողություններից (պիքսելները բաժանել երկարության վրա) ՝ ծավալը մմ^3 -ով ճիշտ ընթերցելու համար:
- Ստեղծեք օղակ for, որը շրջում է յուրաքանչյուր շերտով
- Գտիր տրված շերտի միավորների թիվը
- Փոխարկեք z- ի կոորդինատները արժեքների մեջ, որոնք չափված են համապատասխան հարաբերակցության, որը դրված է «tempz», սյունակի վեկտորի վրա
- Մակարդակի կորի համար z արժեքը ավելացրեք z վեկտորին
Այս z կոորդինատները ճիշտ են ճշգրտվում:
Քայլ 19. Հիմնական ծածկագիրը. X և Y կոորդինատների որոշում

Այժմ սահմանների յուրաքանչյուր կետի x և y դիրքերը որոշելու համար:
- Նախագծեք «xBrain» - ը որպես դատարկ զանգված
- Նախաձեռնել «yBrain» - ը որպես դատարկ զանգված
- Տեղադրեք for loop ՝ յուրաքանչյուր բեռնված պատկերի միջոցով շրջանցելու համար
- Կազմեք երկու սյունակի մատրիցա `յուրաքանչյուր կետի հարթ կոորդինատները պահելու համար` ներկայացված սյունակի վեկտորներով `" RowBrain "և" ColumnBrain"
- Կցեք «xBrain» - ը ներկայումս գտնված «RowBrain» կոորդինատների հետ
- Կցեք «yBrain» - ը ներկայումս գտնված «ColumnBrain» կոորդինատներով
- Վերջացրեք for loop- ը (սխալներից խուսափելու համար)
Քայլ 20. Հիմնական ծածկագիր. Եռաչափ կառուցվածքի գծագրում, Volավալի որոնում և տվյալների մուտքագրում




Օգտագործելով alphaShape գործառույթը, մենք կստեղծենք եռաչափ կառուցվածք, որից կարող ենք հաշվարկել ուղեղի ծավալը:
- Օգտագործեք alphaShape գործառույթը, միացրեք «xBrain», «yBrain» և «z» վեկտորները x, y և z կոորդինատների համար և սահմանեք «BrainPolyhedron» - ի հավասար:
- Բացեք գործչի պատուհանը 3
- Հաշվարկեք «BrainPolyhedron» հաշվարկված ալֆա ձևը, որը ցուցադրվում է նկարի պատուհանում
- Հաշվիր ալֆա ձևի ծավալը ՝ օգտագործելով «ծավալ» գործառույթը, որն աշխատում է ալֆա ձևերի համար
- Ձայնը վերածեք մմ^3 -ի
- Տպեք հրամանի պատուհանում պինդ մարմնի ծավալը
- Խնդրում ենք հիվանդի անունը սահմանել որպես մուտքագրում
- Ստացեք ընթացիկ ամսաթիվը և ժամը ժամացույցով և սահմանեք «DateandTime»
- Callանգահարեք «pacientFiles» գործառույթը ՝ հաշվարկված տվյալները մուտքագրելու և գծագրելու համար
Այստեղից երկրորդ և երրորդ նկարները պետք է ցույց տան հայտնվող թվերը, իսկ չորրորդը ՝ այն, որը պետք է ցուցադրվի Հրամանի պատուհանում:
Խորհուրդ ենք տալիս:
Մանկական քառյակը կոտրել է ինքնակառավարվող մեքենան, հետևել գծին և խոչընդոտները հայտնաբերել մեքենան. 4 քայլ

Kid's Quad Hacking into a Self Driving, Line Հետեւելով եւ Խոչընդոտները Հայտնաբերող Տրանսպորտային Մեքենայի. Դեմո տեսանյութ ՝ https: //youtu.be/bVIsolkEP1k Այս նախագծի համար մեզ անհրաժեշտ կլինեն հետևյալ նյութերը
Ուղեղի ուռուցքի ՄՌՏ հայտնաբերում Matlab- ի միջոցով. 6 քայլ

Ուղեղի ուռուցքների ՄՌՏ հայտնաբերում Matlab- ի միջոցով. Հեղինակ ՝ Մադհումիտա Կաննան, Հենրի Նգուեն, Էշլի Ուրուտիա Ավիլա, Մեյ Jinին: Այս MATLAB ծածկագիրը ծրագիր է `հայտնաբերելու հիվանդի ուղեղի ՄՌՏ սկաներում հայտնաբերված ուռուցքի ճշգրիտ չափը, ձևը և տեղը: Այս ծրագիրը նախատեսված է ի սկզբանե աշխատելու ուռուցքի հայտնաբերման հետ
3 զարմանալի ուղեղի / մտքի կառավարման նախագծեր Lights LedStrip LED Arduino- ով և Neurosky- ով. 6 քայլ (նկարներով)

3 ingարմանալի ուղեղի / մտքի վերահսկման նախագծեր Lights LedStrip LED Arduino- ի և Neurosky- ի հետ. Երբևէ ցանկացե՞լ եք լույսերը միացնել կամ անջատել միայն դրա մասին մտածելով: Կամ ուզում եք իմանալ, թե որքան եք սթրեսի մեջ ՝ նայելով RGB լուսադիոդի գույնին: Մինչդեռ այժմ կարող եք հետևել այս Հրահանգներին: aգացողություն ունենալու համար, թե ինչ ենք մենք պատրաստվում
Arduino նյարդային ցանցի ռոբոտ. 21 քայլ (նկարներով)

Arduino նյարդային ցանցի ռոբոտ. Այս հրահանգը հիմնված է 3 մասի շարքի վրա, որը ես պատրաստել եմ Make YouTube ալիքի համար, որը ցույց է տալիս, թե ինչպես նախատիպավորել, նախագծել, հավաքել և ծրագրավորել ձեր սեփական Arduino նյարդային ցանցի ռոբոտը: Ամբողջ շարքը դիտելուց հետո պետք է ավելի լավ
Ինչպես հետևել պատկերներին Photoshop տարրերում 6: 6 քայլ

Ինչպես հետևել պատկերներին Photoshop տարրերում 6: Այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես կարելի է հետևել ցանկացած պատկերին և այն դարձնել այնպիսին, ինչպիսին դուք այն ուրվագծել եք: Սա բավականին պարզ է, և եթե ցանկանում եք, կարող եք այն դարձնել ավելի մանրամասն: Դա անելու համար ձեզ հարկավոր է ՝ 1. Photoshop տարրեր 6 (կամ ֆոտոշարքի որևէ ձև