Utambuzi wa kiotomatiki wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari Kupitia MATLAB: 33 Hatua
Utambuzi wa kiotomatiki wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari Kupitia MATLAB: 33 Hatua

Orodha ya maudhui:

Anonim
Utambuzi wa kiotomatiki wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari Kupitia MATLAB
Utambuzi wa kiotomatiki wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari Kupitia MATLAB
Utambuzi wa kiotomatiki wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari Kupitia MATLAB
Utambuzi wa kiotomatiki wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari Kupitia MATLAB

(Angalia muhtasari wa nambari hapo juu)

Ugonjwa wa ugonjwa wa kisukari ni ugonjwa wa macho unaohusiana na kisukari unaosababishwa na viwango vya juu vya sukari ya damu. Viwango vya juu vya sukari kwenye damu husababisha mishipa ya damu kwenye retina kuvimba, ambayo husababisha kuongezeka kwa mishipa ya damu na hata kuvuja kwa vyombo, ambayo husababisha matangazo meusi kwenye picha za macho. Kwa nambari hii, tunakusudia kutumia kuonekana kwa matangazo ya kuvuja kwa mishipa ya damu kama kiashiria cha ugonjwa wa ugonjwa wa kisukari, ingawa mbinu zaidi za utambuzi zitahitajika katika ulimwengu wa kweli. Lengo la nambari hii ni kugeuza usindikaji wa picha na kugundua picha za retina ili kugundua ishara za ugonjwa wa ugonjwa wa kisukari unaoonyeshwa kupitia matangazo meusi kwenye picha za macho.

Picha 10 za kawaida za retina na picha 10 za retina zilizogunduliwa zilichakatwa kupitia nambari ambayo inasoma kwanza na kuchuja picha na kisha kuainisha matangazo ya giza kuamua ikiwa dalili za ugonjwa wa ugonjwa wa kisukari ziko, kulingana na kizingiti kilichopewa. Matokeo yake yanachapishwa kwenye dirisha la amri kwa tafsiri ya mtazamaji.

Hatua ya 1: Mahitaji

Mahitaji
Mahitaji

1. Hakikisha una programu ya MATLAB iliyopakuliwa kwenye kompyuta yako.

2. Pakua faili ya txt iliyopatikana kwenye kiunga. (Bonyeza 'ctrl + s' ili uhifadhi kwenye saraka sawa na Msimbo wa MATLAB)

Hatua ya 2: Mahitaji ya mahitaji (con't)

Mahitaji ya kwanza (con't)
Mahitaji ya kwanza (con't)
Mahitaji ya kwanza (con't)
Mahitaji ya kwanza (con't)

4. Fungua MATLAB na andika 'uiimport' kwenye dirisha la amri.

5. Chagua faili rasmi ya utambuzi.txt na uiingize kwenye MATLAB kama tumbo la seli.

6. Hakikisha unaona 'officialdiagnoses' kama inayobadilika katika nafasi ya kazi.

Hatua ya 3: Mahitaji ya mahitaji (con't)

Mahitaji ya kwanza (con't)
Mahitaji ya kwanza (con't)

7. Pakua kazi ModWald.m, ambayo inaweza kupata kutoka kwa nambari hapo juu au kuipakua kutoka kwa Canvas.

(Kanuni iliyotolewa na Profesa King na Profesa Choi)

Hatua ya 4: Mahitaji ya mahitaji (con't)

Mahitaji ya kwanza (con't)
Mahitaji ya kwanza (con't)

8. Pakua picha 400 mbichi kutoka sehemu ya data ya Mradi wa STARE.

Hatua ya 5: Safisha Matlab Kujiandaa na Nambari ya Kuendesha

Safisha Matlab Kujiandaa na Nambari ya Kuendesha
Safisha Matlab Kujiandaa na Nambari ya Kuendesha

Ongeza kwenye nambari:

1. funga zote (Hufunga picha zote zilizofunguliwa hapo awali)

2. clearvars - isipokuwa utambuzi rasmi (Hufuta vigeuzi vyote isipokuwa faili rasmi ya txt iliyoingizwa hapo awali)

3. cclc (Clears Window ya Amri)

Hatua ya 6: Chagua Picha 10 za Jicho la kawaida na Picha 10 na Dalili za ugonjwa wa ugonjwa wa kisukari

Chagua Picha 10 za Jicho la kawaida na Picha 10 zilizo na Dalili za Ugonjwa wa kisukari
Chagua Picha 10 za Jicho la kawaida na Picha 10 zilizo na Dalili za Ugonjwa wa kisukari
Chagua Picha 10 za Jicho la kawaida na Picha 10 zilizo na Dalili za Ugonjwa wa kisukari
Chagua Picha 10 za Jicho la kawaida na Picha 10 zilizo na Dalili za Ugonjwa wa kisukari

1. Chukua faili ya maandishi ya utambuzi na utoe majina ya picha. Majina haya yamo kwenye safu ya kwanza ya faili ya maandishi ili kuzichapa aina 'officialdiagnoses (:, 1)'. Matrix ya majina ya picha ilipewa kutofautisha, "all_image_numbers"

2. Badilisha nambari zote_zitatikadi-tofauti kutoka kwa safu ya seli hadi safu ya tumbo kwa kutumia kazi ya seli2mat

Hatua ya 7: Chagua Picha 10 za Jicho la kawaida na Picha 10 na Dalili za ugonjwa wa ugonjwa wa kisukari (con't)

Chagua Picha 10 za Jicho la kawaida na Picha 10 zilizo na Dalili za Ugonjwa wa kisukari wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari (con't)
Chagua Picha 10 za Jicho la kawaida na Picha 10 zilizo na Dalili za Ugonjwa wa kisukari wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari (con't)
Chagua Picha 10 za kawaida za Jicho na Picha 10 na Dalili za Ugonjwa wa kisukari wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari (con't)
Chagua Picha 10 za kawaida za Jicho na Picha 10 na Dalili za Ugonjwa wa kisukari wa ugonjwa wa ugonjwa wa ugonjwa wa kisukari (con't)

3. Chagua picha 10 za kawaida za macho ili kutekeleza msimbo. Picha zilizochaguliwa katika kesi hii zilikuwa 278, 199, 241, 235, 35, 77, 82, 164, 239, 170.

Weka nambari hizi kwenye tumbo na uwape tofauti ambayo itaitwa wakati wa kupakia picha.

4. Rudia hatua ya 3 kwa picha za macho ambazo zimegunduliwa na ugonjwa wa ugonjwa wa kisukari. Picha zilizochaguliwa katika kesi hii zilikuwa 139, 137, 136, 135, 133, 140, 141, 116, 157, 188.

Hatua ya 8: Unda Vigeuzi 2 (Kawaida na Viligunduliwa) na Uziweke Kila Sawa kwa 0

Unda Vigeuzi 2 (Kawaida na Vilivyogunduliwa) na Uziweke Kila Sawa kwa 0
Unda Vigeuzi 2 (Kawaida na Vilivyogunduliwa) na Uziweke Kila Sawa kwa 0

Unda vigeuzi hivi kabla ya kitanzi ili kuanzisha nambari za kitanzi.

Hatua ya 9: Tengeneza Kitanzi ili Upakie Picha za Kawaida

Unda kitanzi ili Kupakia Picha za Kawaida
Unda kitanzi ili Kupakia Picha za Kawaida

1. Tengeneza kitanzi

2. Weka ubadilishaji wa kuhesabu (i, katika kesi hii) kwa matriki ya nambari 1-10. Tofauti hii ya kuhesabu itatumika kuita kila picha kivyake

3. Chukua kipengee i katika picha ya picha ili kutoa na kubadilisha jina la picha kutoka kwa kamba hadi nambari ukitumia kazi ya num2str.

Pata idadi ya nambari zilizopo kwenye jina la picha ukitumia kazi ya numel. Agiza thamani hii kwa anuwai, tarakimu_a kawaida. Nambari hii inapaswa kuwa 1 kwa nambari moja, 2 kwa nambari mbili, na 3 kwa nambari tatu. Habari hii itatumika kupiga picha moja kwa moja.

Hatua ya 10: Tengeneza Kitanzi ili Upakie Picha za Kawaida Moja kwa Moja (sivyo)

Unda Kitanzi ili Upakie Picha za Kawaida Moja kwa Moja (sivyo)
Unda Kitanzi ili Upakie Picha za Kawaida Moja kwa Moja (sivyo)

3. Unda taarifa ikiwa ikiwa na uwezekano wote kutoka kwa hatua zilizopita. Ikiwa jina la picha lina tarakimu 1, picha itaitwa "im000", ikiwa ina tarakimu 2, picha hiyo itaitwa "im00", na ikiwa ina 3 picha itaitwa "im0".

4. Chini ya kila taarifa ikiwa chagua ubadilishaji wa kusoma "im" chini ya inayolingana, ikiwa taarifa na idadi inayofaa ya zero (kama ilivyoelezwa hapo juu), ikifuatiwa na i.

Hatua ya 11: Punguza Mipaka ya Picha

Punguza Mipaka ya Picha
Punguza Mipaka ya Picha

Chukua picha ya asili na weka kichujio cha imcrop kuondoa mipaka nyeusi na upe I -crop inayobadilika. Mstatili wa mazao umeainishwa kwa kutumia tumbo [95, 95, 500, 410].

Hatua ya 12: Unda Picha ya kijivu

Unda Picha ya kijivu
Unda Picha ya kijivu

Chukua picha iliyopunguzwa na utumie kichujio cha rbg2gray kubadilisha picha kuwa kijivu. Shirikisha picha hii kwa I2 inayobadilika.

Hatua ya 13: Unda Picha Iliyotofautishwa

Unda Picha Iliyotofautishwa
Unda Picha Iliyotofautishwa

Chukua picha I2 na utumie imadjust kuokoa maadili ya kiwango.

Chukua maadili yaliyo chini ya masafa [0.2, 0.7] na uwahifadhi kwa [0, 1]. Gamma imewekwa kwa 0.8 ili kufanya picha iwe mkali. Hawawajui picha mpya I_adjusted.

Hatua ya 14: Boresha Picha ya Tofauti

Boresha Picha ya Tofauti
Boresha Picha ya Tofauti

Chukua picha ya I_ iliyobadilishwa na utumie kazi ya adaptthisteq kuongeza utofautishaji.

Sintaksia ya Adapthisteq inahitaji jina la picha, I_imebadilishwa, 'numTiles', saizi ya numTiles, 'nBins', na idadi ya mapipa. Ukubwa wa nambari zimewekwa kwa [8 8], ikigawanya picha hiyo kuwa tiles 8x8 na idadi ya mapipa imewekwa hadi 28. Wape picha I_constrast.

Hatua ya 15: Unda Kichujio cha Wastani

Unda Kichujio cha Wastani
Unda Kichujio cha Wastani

Unda kigeuzi kilichoitwa 'meanfilt' ukitumia kazi fspecial. Ingiza 'kazi ya wastani' ili kuunda kichujio cha wastani na ingiza [90 90] kwa ukubwa wa dirisha linaloteleza.

Hatua ya 16: Unganisha Kichujio cha Wastani na Picha Tofauti

Unganisha Kichujio cha Wastani na Picha Iliyotofautishwa
Unganisha Kichujio cha Wastani na Picha Iliyotofautishwa

Unda anuwai mpya inayoitwa mask_mean na utumie kazi ya imfilter kuchukua picha ya I_contrast na kutumia kichungi cha maana kilichoundwa hapo awali.

Hatua ya 17: Tengeneza Mask mpya ya Maana kwa kutoa saizi

Tengeneza Mask mpya ya Maana kwa kutoa saizi
Tengeneza Mask mpya ya Maana kwa kutoa saizi

Unda anuwai inayoitwa mask_mean2 na utumie kazi ya kuondoa mkazo kutoa thamani ya kila pikseli katika I_contrast kutoka kwa pixel inayolingana katika mask_mean.

Hatua ya 18: Unda Picha iliyochujwa kwa Binary

Unda Picha iliyochujwa kwa Binary
Unda Picha iliyochujwa kwa Binary

Badilisha picha za kijivu kuwa nyeusi na nyeupe ukitumia imbinarize. Ingiza mask_mean2, 'adaptive', 'ForegroundPolarity', 'giza', 'Usikivu', 0.6. Agiza picha hii mpya kwa mask_binarize.

Hatua ya 19: Ondoa Matone Madogo Yanayopatikana kwenye Picha zilizochujwa

Ondoa Matone Madogo Yanayopatikana kwenye Picha Zilizochujwa
Ondoa Matone Madogo Yanayopatikana kwenye Picha Zilizochujwa

Ondoa vitu vyenye unganisho chini ya saizi 100 ukitumia kazi ya bwareaopen kwenye mask_binarize na uweke kiwango cha kizingiti hadi 100. Tenga ubadilishaji kama bw.

Hatua ya 20: Unda Kipengele cha Uundaji wa Disk

Unda Kipengele cha Uundaji wa Disk
Unda Kipengele cha Uundaji wa Disk

Unda kipengee cha muundo wa diski (na eneo la 2) ukitumia kazi ya safu. Mpe se.

Hatua ya 21: Fanya Operesheni za Karibu za Kimofolojia

Fanya Operesheni za Karibu za Kimofolojia
Fanya Operesheni za Karibu za Kimofolojia

Chukua bw na utekeleze kazi ya imclose kwa kipengee cha muundo ili kufanya operesheni ya karibu ya maumbile kwenye kitu.

Hatua ya 22: Tafuta Vitu na Muunganisho wa Angalau 8

Pata Vitu na Uunganisho wa Angalau 8
Pata Vitu na Uunganisho wa Angalau 8

Chukua bw na utumie bwconncomp kupata vitu na unganisho la angalau 8 kwenye picha. Agiza pato la nambari kwa cc_1.

Hatua ya 23: Pata kiwango cha juu cha saizi zilizounganishwa

Pata kiwango cha juu cha saizi zilizounganishwa
Pata kiwango cha juu cha saizi zilizounganishwa
Pata kiwango cha juu cha saizi zilizounganishwa
Pata kiwango cha juu cha saizi zilizounganishwa

Tumia kazi ya seli ili kufanya kazi "numel" kwenye kila seli katika CC. Hii hupata idadi ya vitu kwenye seli ya PixelIdxList. Peana Thamani kwa "numPixels".

Pata maadili ya juu katika numPIxels. Peana kiwango cha juu kabisa kuwa "kikubwa" na faharisi ya thamani ya juu kuwa "idx".

Hatua ya 24: Weka Maadili ya Max Pixel kwa 0 na Pata Saizi Na> = Uunganisho wa Pixel 26

Ondoa Vyombo vya Damu kwenye Picha
Ondoa Vyombo vya Damu kwenye Picha

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

Uonyesho wa Kielelezo
Uonyesho wa Kielelezo

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

Ondoa Vyombo na Hesabu za Damu
Ondoa Vyombo na Hesabu za Damu

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

Tambua Picha ya Mstari kulingana na Idadi ya Magazi yaliyotambuliwa
Tambua Picha ya Mstari kulingana na Idadi ya Magazi yaliyotambuliwa

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

Weka saizi na maadili makubwa zaidi kwenye picha "bw" hadi 0, na kuzifanya saizi ziwe nyeusi.

Pata vitu na unganisho la saizi angalau 26 kwenye picha ukitumia bwconncomp. Shirikisha kutofautisha cc_1.

Hatua ya 25: Ondoa Vyombo vya Damu kwenye Picha

Ondoa mishipa ya damu ambayo bado iko kwenye picha ukitumia kazi ya bwpropfilt na anuwai ya [0, 0.9].

[0.9, 1] imetengwa kwa sababu maadili karibu na 1 yanaonyesha mstari. Shirikisha "OndoaVifaa".

Hatua ya 26: Onyesha Kielelezo

Onyesha kila picha iliyochujwa katika sehemu ndogo. Imshow. na pembejeo za 'mpaka' na 'kubana', huonyesha kila picha katika muundo wa kijia kidogo. Ongeza kichwa kwa kila picha ili kutofautisha kichujio kilichotumiwa.

Hatua ya 27: Ondoa Vyombo na Hesabu Matone ya Damu

1. Chukua "OndoaVifaa" na utumie kipengee cha 'Centroid' katika props za mkoa ili kutambua sentimita za vitu kwenye picha. Vitu hivi vinapaswa kufanana na mabonge ya damu yaliyopo kwenye picha.

2. Hesabu idadi ya mabonge ya damu yaliyotambuliwa kwa kuchukua urefu wa tumbo la sentimita.

Hatua ya 28: Tambua Picha ya Mstari kulingana na Idadi ya Maganda ya Damu yaliyotambuliwa

Tumia ikiwa taarifa kugundua picha kulingana na idadi ya kuganda kwa damu kutambuliwa.

Ikiwa idadi ya sentimita zilizotambuliwa ilikuwa chini ya au sawa na 5, picha hiyo ilitambuliwa kama kawaida.

Ikiwa idadi ya sentisenti ilikuwa kubwa kuliko 5, picha hiyo iligunduliwa na ugonjwa wa ugonjwa wa kisukari.

Matokeo yamechapishwa kwenye dirisha la amri ukitumia fprintf.

Hatua ya 29: Ikiwa Kuna Blob Zaidi ya 5…

Ikiwa Kuna Blob Zaidi ya 5…
Ikiwa Kuna Blob Zaidi ya 5…

Rudia maagizo hapo juu kwa picha zilizogunduliwa kama taarifa nyingine. Sehemu hii itaanza ikiwa idadi ya matone ni kubwa kuliko 5.

Maliza taarifa ikiwa.

Hatua ya 30: Rudia Mchakato wa Kuchuja Picha za Kawaida na Maadili ya Nambari za Picha Kama 2 na 3

Rudia Mchakato wa Kuchuja Picha za Kawaida Na Maadili ya Nambari za Picha Kama 2 na 3
Rudia Mchakato wa Kuchuja Picha za Kawaida Na Maadili ya Nambari za Picha Kama 2 na 3
Rudia Mchakato wa Kuchuja Picha za Kawaida Na Maadili ya Nambari za Picha Kama 2 na 3
Rudia Mchakato wa Kuchuja Picha za Kawaida Na Maadili ya Nambari za Picha Kama 2 na 3

Rudia mchakato wa salio la asili ikiwa taarifa wakati numel (idadi ya nambari kwenye nambari ya picha) ni sawa na 2 na 3. Hii inakamilisha kitanzi cha picha za kawaida.

Maliza kitanzi.

Hatua ya 31: Rudia Mchakato Mzima wa Picha Zilizogunduliwa

Rudia Mchakato Mzima wa Picha Zilizogunduliwa
Rudia Mchakato Mzima wa Picha Zilizogunduliwa

Rudia mchakato mzima ukitumia picha zilizogunduliwa zilizoorodheshwa na tumbo "namba_to_extract_diagnosed".

Hakikisha kupitia kila takwimu (i) na ubadilishe iwe takwimu (i + 10) ili takwimu zilizogunduliwa zitatokea kama picha 11 hadi 20.

Hatua ya 32: Uchambuzi wa Takwimu

Uchambuzi wa takwimu
Uchambuzi wa takwimu

1. 'Actual_Diagnosis_Matrix' hutumiwa kulinganisha matokeo na utambuzi rasmi unaopatikana kwenye faili ya txt. Zero 10 za kwanza zinaonyesha kuwa picha 10 za kwanza zinapaswa kuwa za kawaida. Hizi 10 za mwisho zinaonyesha kuwa picha 10 za mwisho zinapaswa kuainishwa kama ugonjwa wa ugonjwa wa kisukari.

2. Ishara sawa sawa inayotumika kuunda 'idadi_sahihi' inaunda safu ya kimantiki kwa kulinganisha thamani ya vitu vinavyolingana vya 'Actual_Diagnosis_Matrix' na 'Diagnosis_Matrix' iliyoundwa kutoka kwa kitanzi.

Kwa kila kitu kinacholingana na utambuzi 1 kitaongezwa, ikimaanisha nambari iliyogunduliwa kwa usahihi picha hiyo. Ikiwa sio sahihi itaongeza 0 kwa tumbo.

Kisha, kuchukua jumla ya hiyo inaongeza zote. Kwa maneno mengine, hupata jumla ya picha zilizogunduliwa kwa usahihi.

3. 'Final_percentage_c sahihi' ni asilimia iliyohesabiwa ya jinsi nambari iliyogunduliwa ya ugonjwa wa ugonjwa wa kisukari ni sahihi. Idadi ya picha zilizogunduliwa kwa usahihi imegawanywa na 20 (jumla ya picha) na kuzidishwa na 100 kupata asilimia ya uchunguzi uliofanikiwa.

Hatua ya 33: Kupata Muda wa Kujiamini

Kupata Muda wa Kujiamini
Kupata Muda wa Kujiamini

1. Hakikisha umepakua ModWald.m kuiita kama kazi. Bila kazi hiyo, itabidi uhesabu muda wa kujiamini ukitumia njia iliyobadilishwa ya Wald mwenyewe.

2. Kazi ya ModWald ina pembejeo 2 ambapo ya kwanza ni idadi ya picha zilizotambuliwa kwa usahihi, na ya pili ni jumla ya picha.

3. Kazi ya ModWald itatoa mipaka ya chini na ya juu ya muda wa kujiamini wa idadi ya usahihi wa data zilizochukuliwa. Kwa maneno mengine, itakupa muda wa asilimia ambapo asilimia halisi ya usahihi wa nambari italala.

Tumia fprintf hapa chini kutoa takwimu na muda wa kujiamini kwenye dirisha la amri.

> fprintf ('%. 0f asilimia ya picha za retina ziligunduliwa kwa usahihi kulingana na utambuzi rasmi. / n / n', Final_percentage_correct)

> fprintf ('Asilimia ya kweli ambayo nambari yetu itatambua ugonjwa wa ugonjwa wa kisukari kwa usahihi utaanguka katika kiwango cha [%.3f,%.3f], kulingana na picha 20 za sampuli / n', lower_bound, upper_bound)

Ilipendekeza: